时间:2021-05-18
一、属性
1、第一种使用方法:键值对
<ClaaNameA name = “Tom” />
<ClaaNameA name = {Tom} />
<ClaaNameA name = {“Tom”} />
<ClaaNameA name = {[1,2,3]} />//数组
<ClaaNameA name = {FunctionNAme} /> //定义一个函数
2、第二种方法:三个点的展开对象形式
增加三个引号相当于这里面拿到两个属性了(one和two)
3、setProps形式:通过组件更新属性,不能在组件内部中修改属性的,因为会违背组件设计原则(尽量避免)
二、状态:事物所处的状况,由事物自行处理不断变化/事物的私有属性
getInitialState:初始化每个实例特有的状态
setState:更新组件状态
setState会触发diff算法:判断state和页面结果的区别,是否需要更新
三、状态和属性对比
状态和属性都会触发render更新,都是纯JS对象
状态:是和自己相关的,既不受父组件也不受子组件影响
属性:本身是不能自己去修改的,只能从父组件获取属性,父组件也能修改它的属性
根本的区别:组件在运行时需要去修改维护的就是状态
四、简单的demo熟悉一下:
<!DOCTYPE html>2 <html>3 <head>4 <meta http-equiv='Content-type' content='text/html; charset=utf-8'>5 <title>daomul's example</title>6 <link rel="stylesheet" href="../shared/css/base.css" />7 </head>8 <body>9 <h1>Text demo</h1> <div id="container"> </div> <script src="../shared/thirdparty/es5-shim.min.js"></script> <script src="../shared/thirdparty/es5-sham.min.js"></script> <script src="../shared/thirdparty/console-polyfill.js"></script> <script src="../../build/react.js"></script> <script src="../../build/JSXTransformer.js"></script> <script type="text/jsx"> //内容组件 var Content = React.createClass({ getInitialState:function(){ return { inputText:'', }; }, handleChange:function(event){ this.setState({inputText:event.target.value}); }, handleClick:function(){ console.log("props name is " + this.props.selectName + " \n and inputText is " + this.state.inputText); }, render:function(){ return <div> <textarea onChange = {this.handleChange} placeholder = "please input something!"></textarea> <button onClick = {this.handleClick}>sumbit</button> </div>; }, }); //评论组件 var Comment = React.createClass({ getInitialState:function(){ return { names:["Tom","Axiba","daomul"], selectName:'', }; }, handleSelect:function(){ this.setState( {selectName : event.target.value} ); }, render:function(){ var options = []; //往options中添加子option for (var option in this.state.names) { options.push(<option value={this.state.names[option]}> {this.state.names[option]} </option>) }; return <div> <Content selectName = {this.state.selectName}> </Content> <select onChange = {this.handleSelect}> {options} </select> </div>; }, }); //start render React.render(<Comment></Comment>,document.body); </script> </body></html>以上这篇浅谈React 属性和状态的一些总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
React避免重复渲染React在渲染出的UI内部建立和维护了一个内层的实现方式,它包括了从组件返回的React元素。这种实现方式使得React避免了一些不必要
前面学习了vue,react都有状态管理,如vue中的vuex是全局状态管理,在任何组件里都可以引用状态管理中的数据,同样,react中的redux和mbox也
咸宁网站建设浅谈大型企业网站策划方案的一些重要技巧是什么?近,我们几个营业员跟进的几个大企业网站陆续签约,高兴的馀地总结了经验,想在这里和大家分享。大型企业
浅谈RxJava+Retrofit+OkHttp封装使用之前发出后收到很多朋友的关注,原本只是自己学习后的一些经验总结,但是有同学运用到实战当中,这让我很惶恐,
经常和图片打交道,不得不用到一些提取图片中scr、alt、title、等的属性,这里总结给大家一些常用的,感觉还不错,比较通用!PHP正则表达式匹配img中任意