react:用于构建用户界面的js库
zustand ,valtio 、jotai
是一个将数据渲染为html视图的开源javascript库
** jsx组件
类式组件:主要使用,react的精髓
class MyComponent extends React.Component
{
render() {
return (
html标签语言
)
}
}
函数式组件,用的比较少,只能接受props,不能使用state和refs,新版本用hooks可以使用
function MyComponet()
{
return <h2>hello</h2>
}
组件用标签的形式渲染
高阶函数:闭包
函数柯里化 currying:通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。类似于递归。
组件的生命周期函数
组件实例的三大属性:props、state、refs
state:状态
class Weather extends React.Component {
constructor(props) {
super(props)
this.state = {isHot: true}
}
}
setState异步更新:状态不可以直接更改,需要用setState更改
this.setState({
key:value
})
props:属性,从外面传递数据进来,数据的传递
refs:reference,用ref=name,来定位所指向的标签,获得标签中标示的节点对应的属性
它是组件中特殊的props,可以附加到任意一个组件标签中。组件被调用时,会新建一个组件的实例,refs就指向这个实例。
放到原生DOM组件中,得到的就是DOM的节点。可以取代getElementById中的id
在对应的组件类中用this.refs.name来获得对应的节点
❎ 字符串形式,会移除,效率会出现问题
回调函数形式的ref
saveInput = c => {
this.textInput = c;
}
createRef的方式
发生事件的元素就是要操作的元素,即事件处理函数和反馈来源于同一个标签,可以在处理函数中给出参数event,在函数中使用event.target.value来调取标签值
绑定事件
组件化编码流程
UI库
注意点:
合成事件和原生事件
父组件和子组件的通信
路由 react-router-redux和react router 5.0
状态统一管理器 redux flux