微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浅谈React 属性和状态的一些总结

一、属性

1、第一种使用方法:键值对

//数组

//定义一个函数

2、第二种方法:三个点的展开对象形式

rush:js;"> var props = {

one :”123”,tow :321

}

<ClassNameB {…props} />

增加三个引号相当于这里面拿到两个属性了(one和two)

3、setProps形式:通过组件更新属性,不能在组件内部中修改属性的,因为会违背组件设计原则(尽量避免)

rush:js;"> var instance =React.render(,document.body);

instance.setProps({name:”Tom" });

二、状态:事物所处的状况,由事物自行处理不断变化/事物的私有属性

getinitialState:初始化每个实例特有的状态

setState:更新组件状态

setState会触发diff算法:判断state和页面结果的区别,是否需要更新

三、状态和属性对比

状态和属性都会触发render更新,都是纯JS对象

状态:是和自己相关的,既不受父组件也不受子组件影响

属性:本身是不能自己去修改的,只能从父组件获取属性,父组件也能修改它的属性

根本的区别:组件在运行时需要去修改维护的就是状态

四、简单的demo熟悉一下:

rush:js;"> 2 3 4 5 daomul's example 6 7 8 9

Text demo

<script src="../shared/thirdparty/es5-shim.min.js">
<script src="../shared/thirdparty/es5-sham.min.js">
<script src="../shared/thirdparty/console-polyfill.js">
<script src="../../build/react.js">
<script src="../../build/JSXTransformer.js">
<script type="text/jsx">

//<a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>组件
var Content = React.createClass({
 ge<a href="https://www.jb51.cc/tag/tini/" target="_blank" class="keywords">tini</a>tialState: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!"&gt;</textarea>
   <button onClick = {this.handleClick}>sumbit</button>
  </div>;
 },});

//<a href="https://www.jb51.cc/tag/pinglun/" target="_blank" class="keywords">评论</a>组件
var Comment = React.createClass({
 ge<a href="https://www.jb51.cc/tag/tini/" target="_blank" class="keywords">tini</a>tialState:function(){
  return {
   names:["Tom","Axiba","daomul"],selectName:'',handleSelect:function(){
  this.setState(
    {selectName : event.target.value}
   );
 },render:function(){
  var options = [];
  //往options中<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>子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);

以上这篇浅谈React 属性和状态的一些总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐