react整理二阶段学习笔记
2017-05-06 21:37
393 查看
页面引入单个或者多个文件时,在影响方面是请求的次数影响最大
块级元素需要内部元素才能撑起高度,否则高度为0
字体大小不同 容易导致行高不同 从而导致版块之间有间隔缝隙
突然发现,我好像有一两个星期没有更新学习资料了
整理下这段时间学习的react的学习笔记
----------------------------------------
var React = require('react');
var ReactDOM = require('react-dom');
上下效果等同,两种写法
// import React from 'react';
// import ReactDOM from 'react-dom';
----------------------------------------
每个render函数里返回的html节点只能是一个,但可以用div将多个节点包含起来,如下:
<div>
<ComponentHeader/>
<h2>zheshidierge</h2>
</div>
-----------------------------------------
如果要将定义的组件供外部使用,必须在组件定义前添加 export default 如:
export default class Componentheader extends React.Component{.........}
-----------------------------------------
定义组件开发模式的话,就需要给一个入口,这个入口在主要组件中配置:
ReactDOM.render(<Index/>, document.getElementById('example'));
“Index”为组件集合,“example”为页面中标记的id,即将来需要替换的部位
没有入口,react就不会发生作用
-----------------------------------------
所有自定义的参数都必须使用{},包括注释{/*......*/} 如下:
render(){
var name = '111';
var boolean = false;
return(
<div>
<h2>这里是这要内容</h2>
<p>{name=='12' ? 'no---name' :'yes---name:'+name}</p>
<p><input type='button' value={name} disabled={boolean} /></p>
</div>
-----------------------------------------
react生命周期中的各种函数名称必须严格区分大小写,否则无法生效,
componentWillMount,componentDidMount等函数的定义类似与切面函数,如下:
componentWillMount(){
在组件加载前执行一下方法或者业务逻辑
console.log('Componentbody - componentWillMount');
}
componentDidMount(){
在组件加载完成执行一下方法或者业务逻辑
console.log("Componentbody - componentDidmount");
}
render(){
var name = '111';
var boolean =
----------------------------------------
export default class ComponentBody extends React.Component{.....},解释如下:
这里小组件的模式,export default代表可以提供给外部使用,
class ComponentBody 定义组件名称钱必须添加class,
extends React.Component 语法如此而已。
----------------------------------------
setTimeout(
()=>{
this.setState({username:'kai'});
},4000 );
setTimeout,this.setState,类似与java里面的get/set方法,
this.setState是修改属性。
类似与这种属性方面的函数,必须注意大写,否则没有作用。
----------------------------------------
constructor(){
super();
this.state = {username:'yang',age:30};
}
这个构造函数中,“this.state”为其定义函数属性,
{username:'yang',age:30,...},类似与json方法,可以定义多个属性
----------------------------------------
state属性特点:
当我们修改某个组件时,页面是从新刷新、从新请求,
而当我们只改变state里的属性时,页面类似与ajax请求,
只刷新某个部位,
即:state的作用域只属于当前类,不污染其他模块。
----------------------------------------
这里父组件向子组件传递参数
<ComponentBody username={'ying'} userid={117} age={11}/>
{this.props.userid}{this.props.username}{this.props.age}
state是组件自有属性,props是外来属性,
当需要外来传入属性时,直接在组件中username={'ying'} userid={117} age={11}直接写即可,
在模块中接收需要{this.props.age}即可,如下:
<div>
<h4> 这里是主要内容 </h4>
<p>{this.state.username}==={this.props.userid}</p>
</div>
{this.state.username}接收自有属性,
{this.props.userid}接收外来属性。
-----------------------------------------
import React from 'react';正确
import React from 'React';错误
这里一定要使用小写,因为会与别的文件重名,造成如下问题:
WARNING in ./~/.npminstall/rxjs/5.0.0-beta.6/rxjs/Notification.js
There is another module with an equal name when case is ignored.
This can lead to unexpected be......
-----------------------------------------
子组件传值,父组件随即改变属性值
1.子组件中,定义改变的属性位置
return(
<div>
<p>请输入:<input type="test" onChange={this.props.handleChildV} /></p>
</div> )
handleChildV为定义时自定义的名称
2.父组件中
在return中定义
<BodyChild handleChildV = {this.handleChildV.bind(this)}/>
BodyChild为组件名称
将子组件中的值与父组件关联
3. 并在父组件中定义相关方法使子组件传来的值与属性值相关联
handleChildV(event) {
this.setState({
age: event.target.value 将传来的值与属性值关联
});
------------------------------------------
验证父组件传给子组件的值的方法:
在组件中
import PropTypes from 'prop-types';
然后在最后定义
ComponentBody.propTypes = {
userid: PropTypes.number.isRequired };
注意:这里是React v15.5.0版本类型验证方法
ComponentBody为验证时的组件名称
这样就是说父组件必须为子组件传值,并且为number类型
这里需要注意的是,没有传值时,程序只是警告,传的类型不对时,程序会报错
------------------------------------------
父组件未传值,然后需要有个默认值的甚至方法
在最开始定义
const defaultProps = {
username : "这是默认值" };
这里json格式,可定义多个属性值
在最后定义
ComponentBody.defaultProps = defaultProps;
ComponentBody为默认值设置的组件名称
------------------------------------------
<BodyChild {...this.props} id={34} handleChildV = {this.handleChildV.bind(this)}/>
页面传参时,这里为父往子传时,
只需要定义{...this.props} 就可以将参数继续往‘下’传,
如果还有自定义的参数
id={34}在后面继续定义即可
------------------------------------------
块级元素需要内部元素才能撑起高度,否则高度为0
字体大小不同 容易导致行高不同 从而导致版块之间有间隔缝隙
突然发现,我好像有一两个星期没有更新学习资料了
整理下这段时间学习的react的学习笔记
----------------------------------------
var React = require('react');
var ReactDOM = require('react-dom');
上下效果等同,两种写法
// import React from 'react';
// import ReactDOM from 'react-dom';
----------------------------------------
每个render函数里返回的html节点只能是一个,但可以用div将多个节点包含起来,如下:
<div>
<ComponentHeader/>
<h2>zheshidierge</h2>
</div>
-----------------------------------------
如果要将定义的组件供外部使用,必须在组件定义前添加 export default 如:
export default class Componentheader extends React.Component{.........}
-----------------------------------------
定义组件开发模式的话,就需要给一个入口,这个入口在主要组件中配置:
ReactDOM.render(<Index/>, document.getElementById('example'));
“Index”为组件集合,“example”为页面中标记的id,即将来需要替换的部位
没有入口,react就不会发生作用
-----------------------------------------
所有自定义的参数都必须使用{},包括注释{/*......*/} 如下:
render(){
var name = '111';
var boolean = false;
return(
<div>
<h2>这里是这要内容</h2>
<p>{name=='12' ? 'no---name' :'yes---name:'+name}</p>
<p><input type='button' value={name} disabled={boolean} /></p>
</div>
-----------------------------------------
react生命周期中的各种函数名称必须严格区分大小写,否则无法生效,
componentWillMount,componentDidMount等函数的定义类似与切面函数,如下:
componentWillMount(){
在组件加载前执行一下方法或者业务逻辑
console.log('Componentbody - componentWillMount');
}
componentDidMount(){
在组件加载完成执行一下方法或者业务逻辑
console.log("Componentbody - componentDidmount");
}
render(){
var name = '111';
var boolean =
----------------------------------------
export default class ComponentBody extends React.Component{.....},解释如下:
这里小组件的模式,export default代表可以提供给外部使用,
class ComponentBody 定义组件名称钱必须添加class,
extends React.Component 语法如此而已。
----------------------------------------
setTimeout(
()=>{
this.setState({username:'kai'});
},4000 );
setTimeout,this.setState,类似与java里面的get/set方法,
this.setState是修改属性。
类似与这种属性方面的函数,必须注意大写,否则没有作用。
----------------------------------------
constructor(){
super();
this.state = {username:'yang',age:30};
}
这个构造函数中,“this.state”为其定义函数属性,
{username:'yang',age:30,...},类似与json方法,可以定义多个属性
----------------------------------------
state属性特点:
当我们修改某个组件时,页面是从新刷新、从新请求,
而当我们只改变state里的属性时,页面类似与ajax请求,
只刷新某个部位,
即:state的作用域只属于当前类,不污染其他模块。
----------------------------------------
这里父组件向子组件传递参数
<ComponentBody username={'ying'} userid={117} age={11}/>
{this.props.userid}{this.props.username}{this.props.age}
state是组件自有属性,props是外来属性,
当需要外来传入属性时,直接在组件中username={'ying'} userid={117} age={11}直接写即可,
在模块中接收需要{this.props.age}即可,如下:
<div>
<h4> 这里是主要内容 </h4>
<p>{this.state.username}==={this.props.userid}</p>
</div>
{this.state.username}接收自有属性,
{this.props.userid}接收外来属性。
-----------------------------------------
import React from 'react';正确
import React from 'React';错误
这里一定要使用小写,因为会与别的文件重名,造成如下问题:
WARNING in ./~/.npminstall/rxjs/5.0.0-beta.6/rxjs/Notification.js
There is another module with an equal name when case is ignored.
This can lead to unexpected be......
-----------------------------------------
子组件传值,父组件随即改变属性值
1.子组件中,定义改变的属性位置
return(
<div>
<p>请输入:<input type="test" onChange={this.props.handleChildV} /></p>
</div> )
handleChildV为定义时自定义的名称
2.父组件中
在return中定义
<BodyChild handleChildV = {this.handleChildV.bind(this)}/>
BodyChild为组件名称
将子组件中的值与父组件关联
3. 并在父组件中定义相关方法使子组件传来的值与属性值相关联
handleChildV(event) {
this.setState({
age: event.target.value 将传来的值与属性值关联
});
------------------------------------------
验证父组件传给子组件的值的方法:
在组件中
import PropTypes from 'prop-types';
然后在最后定义
ComponentBody.propTypes = {
userid: PropTypes.number.isRequired };
注意:这里是React v15.5.0版本类型验证方法
ComponentBody为验证时的组件名称
这样就是说父组件必须为子组件传值,并且为number类型
这里需要注意的是,没有传值时,程序只是警告,传的类型不对时,程序会报错
------------------------------------------
父组件未传值,然后需要有个默认值的甚至方法
在最开始定义
const defaultProps = {
username : "这是默认值" };
这里json格式,可定义多个属性值
在最后定义
ComponentBody.defaultProps = defaultProps;
ComponentBody为默认值设置的组件名称
------------------------------------------
<BodyChild {...this.props} id={34} handleChildV = {this.handleChildV.bind(this)}/>
页面传参时,这里为父往子传时,
只需要定义{...this.props} 就可以将参数继续往‘下’传,
如果还有自定义的参数
id={34}在后面继续定义即可
------------------------------------------
相关文章推荐
- React学习笔记-7-销毁阶段
- React学习笔记-6-运行中阶段介绍
- react3阶段学习笔记
- [React网络整理]React之表单组件的学习笔记
- React学习笔记-5-初始化阶段介绍
- 学习ReactNative笔记整理一___JavaScript基础
- [React网络整理]React之State的学习笔记
- C语言学习笔记整理
- DWR util.js 学习笔记 整理
- solaris 10 学习笔记收集整理
- Silverlight 1.1 学习笔记(1)--准备阶段
- 计算机软件测试技术学习笔记(整理)
- Ajax基础教程整理,学习笔记
- DWR util.js 学习笔记 整理
- J2ME学习笔记整理(一)
- [学习笔记]servlet基础知识整理
- IKE学习笔记(IKE第二阶段)
- Java容器学习笔记(由java编程思想和网上资料整理而成)
- IKE学习笔记2(IKE交换第一阶段)
- PHP学习笔记(整理完成)