React学习小结(三)

一、React数据的传输

1、属性和状态是react中数据传递的载体

2、属性是声明以后不允许被修改的东西

3、属性只能在组件初始化的时候声明并传入组件内部,并且在组件内部通过this.props获取

4、组件内部可以通过getDefaultProps声明默认属性

下面来说一下属性传值的两种方式:1.key-value形式 2.展开式

首先来看一下第一种传值方式:

var Demo = React.createClass({
    render:function(){
        var sty={width:‘500px‘,height:‘200px‘,border:‘1px solid red‘,margin:‘0 auto‘}
        console.log(this.props)
        return(
            <div>
                <h1>属性字符串:{this.props.name}</h1>
                <h1>属性数组:{this.props.aa[2]}</h1>
                <div style={sty}>{this.props.bb.age}<br/>{this.props.bb.age1}<br/>{this.props.bb.age2}</div>
            </div>
        )
    }
})
var str="hello react";
var arr=[‘你好‘,2222,‘hi‘];
var obj={
    age:‘白雪公主‘,
    age1:‘七个小矮人‘,
    age2:‘毒苹果‘
}
ReactDOM.render(<Demo name={str} aa={arr} bb={obj} cc={arrx} dd={arry}/>,document.getElementById("out"))
/*
 1/key-value形式  正常数据传值,组件内部this。props获取(对象)
 2/{...}展开式传值  传输数据对对象形式,内部获取直接获取该对象的key名
 */

然后我们再看一下第二种展开式的传值方式:

注:展开式传值不能传字符串!非对象的形式不要用展开式传值!

ReactDOM.render(<Demo1 {...obj}/>,document.getElementById(‘out‘))

组合数据:

var Demo = React.createClass({
    render:function(){
        var sty={width:‘500px‘,height:‘200px‘,border:‘1px solid red‘,margin:‘0 auto‘}
        console.log(this.props)
        return(
            <div>
                <h2>组合数据数组:{this.props.cc[1][0]}{this.props.cc[2].age}</h2>
                <h2>组合数据对象:{this.props.dd.name2.age} <br/> {this.props.dd.name3[0]}</h2>
            </div>
        )
    }
})
var arrx=[
    ‘hello react‘,
    [‘你好‘,2222,‘hi‘],
    {
        age:‘白雪公主‘,
        age1:‘七个小矮人‘,
        age2:‘毒苹果‘
    }
]
var arry = {
    name:‘hello react‘,
    name2:{
        age:‘白雪公主‘,
        age1:‘七个小矮人‘,
        age2:‘毒苹果‘
    },
    name3:[‘你好‘,2222,‘hi‘]

}
ReactDOM.render(<Demo name={str} aa={arr} bb={obj} cc={arrx} dd={arry}/>,document.getElementById("out"))

时间: 2024-10-25 22:01:47

React学习小结(三)的相关文章

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo 前言 在JS学习中,对于原生的很多东西我理解得并不透彻.但是使用jQuery来操作DOM,基本上还是非常熟练的.但是对于AJAX数据交互的处理,我不是很理解. 近期团队交给我一个后端全接口提供给我的项目.我要利用这些接口来自己组织前端代码.为了学习,我决定不使用VUE或者其他的前端框架来做.而是只使用jQuery框架,数据的部分全部使用拼接字符串的形式实现. 获取数据,显示数据,提交数据. 在这个项目中(

react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之前对react使用不多,正好我目前在做的项目也在使用react+redux,借着这个机会系统的学习下react+redux. react是什么 react是一个JavaScript类库,通过react,我们可以构建可组合的UI,也就是说,我们可以通过重用组件来组合出我们的UI.可以说react的核心便是

Maven学习小结(三 基本概念)

1.Maven POM POM(Project Object Model)项目对象模型,是用Maven来管理项目里的一个叫做pom.xml的文件.所有的项目配置信息都被定义在这个文件中, 通过这个文件Maven可以管理项目的整个生命周期,包括清除.编译,测试,报告.打包.部署等. 2.Maven Plugin Maven的每个具体任务都是由插件完成的.(see more https://maven.apache.org/plugins/index.html#) 3.Maven Coordinat

React学习笔记(三) 组件传值

组件嵌套后,父组件怎么向子组件发送数据呢? 答案是: this.props <script type="text/babel"> var MyFirst = React.createClass({ getInitialState : function(){ return { myMessage: ['我是父组件data1','我是父组件data2','我是父组件data3',] } }, render : function(){ return ( <div> &

React学习小结(二)

一.组件的嵌套 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <script src="react.min.js" type="text/javascript" charset="utf-8"></script> 7

第三章学习小结—-转

[学习目标] 01掌握一维数组的声明和使用方法(OK) 02掌握二维数组的声明和使用方法(OK) 03掌握字符串的声明.赋值.比较和连接方法(连接很少用) 04熟悉字符的ASCII码和ctype.h中的字符函数 05正确认识++.+=等能修改变量的运算符(OK) 06学会用编译选项-Wall获得更多的警告信息(OK) 07了解不同操作系统中换行符的表示方法(嗯) 08掌握fgetc和getchar的使用方法(fgetc基本没用过) 09掌握预处理和迭代开发的技巧(嗯) 程序3-1 逆序输出 输入

网络编程学习小结

几种网络编程方式: ISAPI.CGI.WinInet.Winsock 它们之间的差别: 1)  ISAPI主要是开发基于浏览器client与server端程序.效率比CGI方式高,并且也扩展了CGI没有的一些功能.(基于TCP/IP模型中的应用层) 2)  CGI主要是开发基于浏览器client与server端程序.(基于TCP/IP模型中的应用层) 3)  WinInet主要是开发client程序.(基于TCP/IP模型中的应用层) 4)  Winsock主要是基于socket来开发clie

MogileFS学习小结

大纲: 一.关于MogileFS 二.常见分布式文件系统 三.MogileFS基本原理 四.MogileFS的实现 一.关于MogileFS 当下我们处在一个互联网飞速发展的信息社会,在海量并发连接的驱动下每天所产生的数据量必然以几何方式增长,随着信息连接方式日益多样化,数据存储的结构也随着发生了变化.在这样的压力下使得人们不得不重新审视大量数据的存储所带来的挑战,例如:数据采集.数据存储.数据搜索.数据共享.数据传输.数据分析.数据可视化等一系列问题. 传统存储在面对海量数据存储表现出的力不从

react学习笔记1

# 1.hello world 学习一个语言,最好的方式,我们需要去官网去查看文档(https://facebook.github.io/react),通过JSFiddle,便可以看到最简单的demo.目前为止最新版本为15.3.0,后续没有特别说明,我们都是基于该版本. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&g