React之HelloWorld转载
原创背景
Facebook 为了开发出一套更好、更适合自己的JavaScript MVC 框架,所以结果是react。后来,反响非常好。,所以于2013年5月开源。
-
react三个基础图书馆
-
react.js: React核心库
-
react-dom.js: 提供与DOM相关功能
-
browser.min.js: 把JXS文法javascript语法
react之Hello World:
ReactDOM.render(
Hello, world!
,
document.getElementById(box)
);
ReactDOM.render方法是输出HTML方法,是react最基本的方法是将输入插入到公式中DOM中
- JXS语法
在react中,遇到<则按照html语法执行,遇到{则按照js语法执行,JXS语法允许将变量插入模板。
var str = a;
ReactDOM.render(
{str}
,
document.getElementById(box)
);
//页面输出a。
如果变量是数组,则展开数组的所有成员
var arr = [
Hello One!
,
Hello Two
]
ReactDOM.render(
{arr},
document.getElementById(box)
);
//页面直接输出和
- 组件
生成组件方法
//部件名称统一,首字母大写,采用驼峰命名法。
//React.creatClass一种生成组件的方法,定义组件这一术语很少出现
//HelloWorld为组件类
//调用组件时,会插入模板。 类,则会自动生成一个。HelloWorld的实例子
var HelloWorld = React.creatClass({
reder: function () {
return {
//this.props对于对象,组件的属性可以在组件内部生成。this.props 获取
{this.prpos.name}
}
}
});
//组件调用
ReactDOM.render(
,
document.getElementById(box)
);
组件是虚拟的DOM,这也是react基本核心理念,由组件的状态更改驱动,当状态发生变化时,只更新DOM,不呈现整个页面,这也是和传统一样的js呈现整个页面最本质的区别和优势是计算当前的虚拟DOM以及虚拟后的状态更改DOM的差异,仅更改不同部分以提供性能。
组件的生命周期
1.实例化
由于react这个想法是组件的组合。, 首次创建相同的实例时,将执行以下方法
- getDefaultProps
- getInitialState
- conponentWillMount
- render
- conponentDidMount
getDefaultProps方法
为真实示例设置了默认值。props值,通常是不变的值,此外,对于父组件未传递的属性,此方法返回实例本身使用的默认值。props值,则该方法将只被调用一次。.
当第二次应用组件类以及所有后续应用时,getDefaultProps该方法不再存在,并且不会被调用。,仅执行以下四种方法
- getInitialState
- conponentWillMount
- render
- conponentDidMount
getInitialState方法
它在初始化每个实例时被调用,并且只调用一次,以生成默认的状态属性值。
conponentWillMount方法
在每次呈现之前调用,此时也可以修改。state的价值,等待render当执行该方法时state它不能更改。
reder方法
render创建一个虚拟的DOM,来表示组件输出。是组件的唯一必需的方法,并且需要满足以下条件:
- 只能通过this.props和this.state访问数据
- 可以返回null、false、或组件
- 只能显示一个顶级组件,无法返回一组元素,可用div用组件包裹一层或包装
- 组件的状态不能更改,或者DOM输出,组件状态只能为setState函数中的修改
componentDidMount方法
在render方法调用和DOM在渲染之后,可以将其放入。componentDidMount方法内部通过this.getDOMNode()方法访问。
2.存在期
到这时,组件已呈现,用户可以与该组件交互,如表单。change事件,react通过确定组件状态的更改来进行响应更新。DOM
var Input = React.createClass({
//设置默认state,确定查看状态,对一般处理数据进行简单的更改。,渴望表格
getInitialState: function () {
return {
val: Hello World
};
},
changeInputVal: function (event) {
this.setState({
value: event.target.value
});
},
render: function () {
var val = this.state.val;
return (
//p的innerHTML该值将基于value要更新的更改DOM
{this.state.value}
当input的value当它改变时,它会触发changeInputVal事件,通过setState来改变value要更新状态值,请执行以下操作DOM。
- 销毁和清除期
当react使用组件后,该组件将从DOM卸货并被摧毁,componentWillUnMount该方法进行响应,完成清理,然后移除顶级结构。
注:react数据流在一个方向上传递,父组件通过传递给子组件。this.props进入子组件。由于时间限制,随后完成并于今天印发了关于复合组件使用情况的摘要。bug需要改变时,首先总结一下这些基本知识,demo我暂时不会先做这件事。学习材料与阮易峰相结合react教程,react中文网及react书籍。
作者:Ackex
链接:https://www.jianshu.com/p/3f102619edf2
资料来源:简讯
这本简明书籍的版权属于作者。请联系作者以获得授权,并注明任何形式转载的来源。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除