IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Longstick的学习周记——第十二周 -> 正文阅读

[JavaScript知识库]Longstick的学习周记——第十二周


前言

正儿八经开学了,但是自从答辩完之后状态一直回不来,不想学习不想动,就想着睡觉想着玩,但是每天又无故焦虑,面试题没有刷,体测没有练等等等等。

多多少少很焦虑了属于是。

不管那么多了,这次简单记录一下在做项目的过程中遇到的一些React的迷惑点。


React中的一些不理解点

其实还挺多的,主要是基础比较差,做的过程中经常会在细节中出现各种错误,纠正后也是一知半解,现在回过头来好好康康。

1. Props与State

相比之下来说,Props与State的主要区别在于props是不可变的,state是可变的,所以组件都是通过定义state来更新改变数据,子组件就只能通过props来传递数据。

在实际应用中,可以通过在父组件中设置state,然后在子组件上利用props传递值,render中常用。例如在项目中,modal(模态框)的展现与否就是在父组件中设置一个state(show?true: false),然后通常在子组件中利用visible这个props来控制。

大体上来说,state更像是人的心情,而props更像是人的行为。(maybe,个人理解。)

2. 类组件与函数组件

似乎从简单上来看,function就是函数组件(毕竟有函数嘛),类组件就是class咯,

function HelloWorld(props){
    return (<h1>Hello World!</h1>)
}
// function函数组件

class Welcome extends React.component{ //继承component类
    render() //含有render函数
    {
        return <h1>Hello World!</h1>;
    }

}
//class类组件

函数组件里面可以直接写表达式,然后最后直接return就行,类组件里面必须包含render函数,再里面return。

?3. 箭头函数

这个箭头函数蛮有意思的,做项目的时候其实也不明白原因,但是经常表达式出现问题的时候换成箭头函数就好了。(感觉就像是匿名函数的简化写法)

?区别上在于调用的时候也不太一样。箭头函数是不需要bind一起使用的,
1. update() {}? ? ? ? ? ? ? ? this.update.bind(this)
2. update = () => {}? ? ? ?this.update

4. Hooks

这个Hooks是这个项目过程中一直不太明白的东西,看上去又是一种比较简单的函数组件的写法。

看到别的文章里面说到,React团队更加推崇使用函数组件而不是类组件,但是函数组件不存在状态管理和生命周期,所以显得并不是特别的好。但是类组件在简单页面下代码太复杂,为了解决类组件功能齐全但是很重、函数轻便但是限制多的问题,React团队设计了Hooks,加强版的函数组件,完全不用class,就能写出全功能的组件。

最常用的四种钩子:

  • useState()
  • userContext()
  • userReducer()
  • useEffect()

1. useState状态钩子

import React, {useState} from 'react'
const AddCount = () => {
  const [ count, setCount ] = useState(0)
  const addcount = () => {
    let newCount = count
    setCount(newCount+=1)
  } 
  return (
    <>
      <p>{count}</p>
      <button onClick={addcount}>count++</button>
    </>
  )
}
export default AddCount 

useState()中,它接受状态的初始值作为参数,即上例中计数的初始值,它返回一个数组,其中数组第一项为一个变量,指向状态的当前值。类似this.state,第二项是一个函数,用来更新状态,类似setState。该函数的命名,我们约定为set前缀加状态的变量名。

2. useContext共享状态钩子

在组件之间共享状态。通常是一个createContext,另一个useContext

import React,{ useContext } from 'react'
const Ceshi = () => {
  const AppContext = React.createContext({})
  const A =() => {
    const { name } = useContext(AppContext)
    return (
        <p>我是A组件的名字{name}<span>我是A的子组件{name}</span></p>
    )
}
const B =() => {
  const { name } = useContext(AppContext)
  return (
      <p>我是B组件的名字{name}</p>
  )
}
  return (
    <AppContext.Provider value={{name: 'hook测试'}}>
    <A/>
    <B/>
    </AppContext.Provider>
  )
}
export default Ceshi 

具体参考一下:https://www.jianshu.com/p/d600f749bb19

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:43:24  更:2021-09-05 10:44:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:16:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码