React

React简介

FeceBook开源的一套框架,专注于MVC的视图V模块。实质是对V视图的一种实现。

React框架的设计没有过分依赖于某个环境,它自建一套环境,就是virtual DOM(虚拟DOM)。

提供基础API:创建元素,渲染元素。

React的独特之处:

组件的组合模式,单向数据流的设计,高效的性能,分离的设计

浏览器环境中渲染

react.js: 构建虚拟DOM, React.createElement(); React核心库,在应用中必须先加载核心库。
react-dom.js: 将虚拟DOM渲染页面中,ReactDOM.render(); DOM渲染器,React将核心库和渲染器分离,目的:在Web页面中显示开发的组件。

JSX

JSX是React自定义的语法,最终JSX会转化为JS运行与页面当中

组件

组件是React中核心概念,页面当中的所有元素都通过React组件来表达,将要写的React代码绝大部分都是在做React组件的开发。

组合模式: 组合模式又称之为:部分-整体模式。使树形结构的问题中,模式了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂的元素,从而使得客户程序与复杂元素的内部结构解耦。

无论是应用等级还是一个表单亦或是一个按钮,都视为一个组件。然后基于组件的组合构建整个应用。

超级产品经理, document.querySelector('.app'));

## JSX注释

let Header = React.createClass({
render: function () {
{/ 这里是注释 /}
}
});

## props属性组件中特殊属性:props作用:获取组件上添加的属性。设置默认的属性,通过getDefaultProps()来设置,是React内置方法名,在自定义方法的时候,不能重写。1. this.props :  获取属性值1. geetDefaultProps(); : 获取默认属性对象,会被调用一次,当组件类创建的时候会被调用,返回值会被缓存起来,当组件被实例化过后如果传入的属性没有值,会返回默认值属性值。1. this.props.children : 子节点属性1. propTypes : 属性类型检查**属性数据的单项性**React的单项数据流模式,数据的流动管道就是 props,流动的方向就组件的层级自顶向下的方向。所以一个组件是不能修改自身的属性,组件的属性一定是通过父组件传递而来(或默认属性)

'use strict';

// Component
let Prat = React.createClass({

getDefaultProps: function () {    return {        title: ['默认标题']    }},createLi: function () {    return this.props.title.map( ( val, idx ) => {        return ({ val });    } );},render: function () {

// console.log( this.props.children );

// console.log( this.props );
return (

                {this.createLi()}    );}

});

// 渲染
ReactDOM.render(, document.querySelector('.app'));
ReactDOM.render(, document.querySelector('.app1'));

## style设置style的样式1. 普通的CSS样式, 遵循驼峰式命名规则1. CSS3样式,遵循大驼峰式命名规则注意:样式并不能像HTML行内一样,需要使用插值方式,插值中使用对象。

'use strict';

// Componedt
let Style = React.createClass({

render: function () {    let sty = {        color: 'red',        border: '1px solid # 000',        borderBottom: '2px solid tan'    }    return (            title            titile2    );}

});

// 渲染
ReactDOM.render(, document.querySelector('.app'));

## EventReact中为虚拟DOM添加事件与HTML为DOM添加事件一样:     一般的为React添加的DOM事件,并不要字符串,需要使用插值符号为虚拟DOM添加事件回调函数。

// Componedt
let Style = React.createClass({

changeContent: function ( ev ) {    ev.target.innerHTML = '修改后的文案';},render: function () {    let sty = {        color: 'red',        border: '1px solid # 000',        borderBottom: '2px solid tan'    }    return (            title            titile2    );}

});

// 渲染
ReactDOM.render(, document.querySelector('.app'));

## state状态**无状态组件属性**对于无状态组件,可以添加 .propTypes 和 .defaultProps 属性到函数上。如果一个在渲染页面之后组件不会变化,可以通过props就可以实现对组件的样式设置以及行为渲染,此时组件不会收到外界的影响,组件是一成不变的,这类组件叫做: 无状态satateless组件.**state**对于大部分的组件来说,通常是要通与外界交流,此时组件要处于不同的状态,此时的组件就要有状态,对于组件内部的状态控制,可以通过state属性控制.state属性: 控制组件的内部状态.getInitilState() : 初始化状态, 返回一个对象,或者数据,指代的就是 statesetState() : 设置状态参数:设置的值state每次更新都会触发一次render() 方法.

// 创建 Component
let Dom = React.createClass({

getInitialState: function () {    return {        index: 0,        txt: '嘻嘻哈哈'    }},render: function () {

// console.log( this.state );

    return (            点击显示内容            {this.state.txt}    );},clickContent: function () {    this.setState({        txt: '么么哒'    });}

});

// 渲染组件
ReactDOM.render(, document.querySelector('.app'));

#react.js、JavaScript、组件、React#

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部