重庆网站建设夹夹虫公司.可信,策划网络营销方案,免费网站入口,免费特效模板下载一、基础 1、使用babel解析 2、不直接使用jsx#xff0c;jsx写起来很繁琐 3、jsx语法规则 4、函数式组件的使用 5、函数式组件渲染 6、类组件渲染 7、类组件中事件调用this指向问题 8、类组件不能直接改变状态 9、props接收数据类型限制 类型限制放到类组件内部#xff0c;用… 一、基础 1、使用babel解析 2、不直接使用jsxjsx写起来很繁琐 3、jsx语法规则 4、函数式组件的使用 5、函数式组件渲染 6、类组件渲染 7、类组件中事件调用this指向问题 8、类组件不能直接改变状态 9、props接收数据类型限制 类型限制放到类组件内部用static关键字 10、ref的使用 字符串ref不推荐使用
回调ref内联函数更新会执行两次第一次参数为null第二次才是dom这个无关紧要。
要想只执行一次就不能写成内联函数要把函数写到类上用this调用才行 createRef的使用 react改写了原生的事件分析 11、jsx注释 12、受控组件与非受控组件
受控组件组件内有状态存储变量 非受控组件表单的值现用现取 13、高阶函数、函数柯理化 14、生命周期函数旧 15、生命周期函数新
相比旧版新增了2个删除了3个 getSnapshotBeforeUpdate钩子的应用场景
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlescript crossorigin srchttps://unpkg.com/react18/umd/react.development.js/scriptscript crossorigin srchttps://unpkg.com/react-dom18/umd/react-dom.development.js/scriptscript srchttps://unpkg.com/babel-standalone6/babel.min.js/scriptscript srchttps://cdn.bootcdn.net/ajax/libs/prop-types/15.8.1/prop-types.js/script
/head
style.list{width: 200px;height: 150px;background-color: skyblue;overflow: auto;}.news{height:30px;}
/style
bodydiv idapp/divscript typetext/babelclass MyDom extends React.Component{state {newsArr:[],mouseType:false}mouseIn(){console.log(aa)this.setState({mouseType:true})}mouseOut(){console.log(bb)this.setState({mouseType:false})}componentDidMount(){// console.log(componentDidMount)setInterval((){const {newsArr} this.state;const news 新闻(newsArr.length1)this.setState({newsArr:[news,...newsArr]})},1000)}getSnapshotBeforeUpdate(){// console.log(getSnapshotBeforeUpdate)return this.refs.list.scrollHeight;}componentDidUpdate(preProps,preState,height){// console.log(组件更新完成,componentDidUpdate);if(this.state.mouseType){this.refs.list.scrollTopthis.refs.list.scrollHeight-height;}else{this.refs.list.scrollTop 0}}render(){// console.log(render函数)const arr this.state.newsArr.map((item,index){return div classNamenews key{index}{item}/div})return (div classNamelist reflist onMouseOver{this.mouseIn} onMouseLeave{this.mouseOut}{arr}/div)}}ReactDOM.render(MyDom/,document.getElementById(app))/script
/body
/html
16、脚手架介绍 17、好用的快捷键插件介绍
ES7 React/Redux/GraphQL/React-Native snippets // ES7 React/Redux/GraphQL/React-Native snippets 快捷键 // rcc 类组件 // rfc 函数组件 // imrc 引入react