React组件的使用
发布时间:2020-12-15 20:39:49 所属栏目:百科 来源:网络整理
导读:?一、index.js 文件【基本配置】 ? 1 // react语法塘 2 import React from ‘react‘ ; 3 // reactDom用来操作虚拟DOM 4 import ReactDom from ‘react-dom‘ ; 5 // 导入组件 6 import App from ‘./App‘ ; 7 ReactDom.render( 8 /* 使用时需将组件App设置
?一、index.js 文件【基本配置】
?
1 //react语法塘 2 import React from ‘react‘; 3 //reactDom用来操作虚拟DOM 4 import ReactDom from ‘react-dom‘; 5 //导入组件 6 import App from ‘./App‘; 7 ReactDom.render( 8 /*使用时需将组件App设置为 标签格式 */ 9 <App/>,10 document.querySelector(‘#root‘),11 ()=>{ 12 console.log(‘渲染完成‘); 13 } 14 ) ?
二、App.js【组件App】
?
1 //只需调入react语法塘【结构化赋值】 2 import React,{Component,Fragment} from ‘react‘; 3 4 5 // React.Component : 所有组件的父类【在react当中所有的组件创建的时候必须首字母大写,为了区分Element元素和组件的区别】 6 class App extents Component{ 7 // constructor 初始化函数 可以用来存放当前组件所需要的一些状态【必须写一个函数 render】 8 constructor(){ 9 // super 必须要写 10 super(); 11 this.state = { 12 message:"王五" 13 } 14 } 15 16 // react的生命周期函数【具体信息请向下划】【react中的函数不用加()】 17 render(){ 18 let {message} = this.state; 19 return ( 20 // Fragment 作用当做节点标签使用,但是不会被渲染成标签【类似文档碎片】 21 <Fragment> 22 /*改变handleClick方法中this的指向,未改之前this指向此div元素【但又因为此div是虚拟dom,所以this指向null】*/ 23 <div onClick={this.handleClick.bind(this)}>{message}</div> 24 </Fragment> 25 ) 26 } 27 28 handleClick(){ 29 /* 30 react 中不允许这这样改变数据 31 this.state.message = ‘1234‘; 32 */ 33 34 this.setState({ 35 message:"1234" 36 }) 37 } 38 } 39 40 //将组件导出去 41 export default App; ?
三、对上方的解释
? ? 1、render 【生命周期函数】
?? ?? ? 作用:渲染虚拟DOM
?
?? ?? ??特点:当 render 渲染虚拟DOM的时候会将数据和虚拟DOM进行相结合生成真实的DOM结构,会将当前的虚拟DOM在缓存中保存一份,当数据发生改变的时候会将缓存中的虚拟DOM和第二次改变的虚拟DOM进行对比。修改需要改变的虚拟DOM节点,而不是改变所有的虚拟DOM【diff算法】
?? ?
? ? 2、constructor?初始化函数?可以用来存放当前组件所需要的一些状态
?
?? ?? ? ?? ?状态(属性)
?
?? ?? ? ?? ?this.state = {
?? ??? ??? ?? ? name:"tom"
?? ??? ??? ?}
?
? ? 3、react?中如果需要改变this.state里面的数据?需要用this.setState方法
?
?? ?? ? 用法为:
?? ??? ?? ? this.setState({
?? ??? ??? ?? ? key:val
?? ??? ??? ?},
?? ??? ?? ? ()=>{
?? ??? ??? ?? ? //在这可以验证状态是否修改,?获取到最新的DOM结构【而vue通过this.$nextTick获取最新的DOM结构】
?? ??? ??? ?})
?
?? ?? ? 参数一:对象【改变状态】
?? ?? ? ?? ?key:需要修改的状态
?? ?? ? ?? ?val:值
?? ?? ? 参数二:回调函数
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |