React技术栈——ReactJS
发布时间:2020-12-15 03:28:49 所属栏目:百科 来源:网络整理
导读:初始化 引入三个script: script src="build/react.js"/script script src="build/react-dom.js"/script script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"/script 第一个是React的核心代码,第二react-dom.js是React里
初始化引入三个script: <script src="build/react.js"></script> <script src="build/react-dom.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script> 第一个是React的核心代码,第二react-dom.js是React里面操作DOM的部分,第三个browser.js将JSX转为Javascript语法。 ReactDOM.render将模板语言转为HTML语言,并插入DOM ReactDOM.render( <div>Test</div>,document.body ); 组件组件类第一个字母必须大写 var Hello = React.createClass({ render: function(){ return <h1>Hello,{this.props.name}</h1> } }) ReactDOM.render( <Hello name="cxs" />,document.body ) this.props.childrenthis.props对象属性与组件属性一一对应。this.props.children是例外,它表示组件的所有节点 var NotesList = React.createClass({ render: function(){ return ( <ol> { React.children.map(this.props.children,function(child){ return <li>{child}</li> }) } </ol> ); } }); ReactDOM.render( <NotesList> <span>Hello</span> <span>world</span> </NotesList>,document.body ); PropTypes组件的属性可以接受任意值。需要一种验证机制,验证别人使用组件时提供的参数是否合法 var Title = React.createClass({ propTypes: { title: React.propTypes.string.isRequired,},render: function(){ return <h1>{this.props.title}</h1> } }); 获取真实DOM节点组件的是virtual DOM。需要获取真实DOM节点时,要用到ref属性 var Component = React.createClass({ handleClick: function(){ this.refs.myTextInput.focus(); },render: function(){ return ( <div> <input type="text" ref="myTextInput" /> <input type="button" value="Focus the text input" onClick={this.handleClick}> </div> ) } }) ReactDOM.render( <Component />,document.body ) this.stateReact的状态机,状态的变化可以出发重新渲染UI var LikeButton = React.createClass({ getInitialState: function(){ return {liked: false}; },handleClick: funtion(event){ this.setState({liked: !this.state.liked}); },render: function(){ var text = this.state.liked ? 'like' : 'dont like'; return( <p onclick={this.handleClick}> </p> ) } }) ReactDOM.render( <LikeButton />,document.body ) 组件的生命周期组件的生命周期有三个状态: Mounting: 已插入真实DOM Updating: 正在被重新渲染 Unmounting: 已移出真实DOM React为每个状态提供两种处理函数,will在进入状态前调用,did函数在进入状态后调用,共五中处理函数: componentWillMount() componentDidMount() componentWillUpdate(object nextProps,object nextState) componentDidUpdate(object prevProps,object preState) componentWillUnount() 还有两种特殊状态的处理函数: componentWillReceiveProps(object nextProps): 已加载组件收到新的参数时调用 shouldComponentUpdate(object nextProps,object nextState): 组件判断是否重新渲染时调用 Demo: var Hello = React.createClass({ getInitialState: function(){ return { opacity: 1.0 } },componentDidMount: function(){ this.timer = setInterval(function(){ var opacity = this.state.opacity; opacity += 0.05; if(opacity < 0.1){ opacity = 1.0; } this.setState({ opacity: opacity }) }.bind(this),100) },render: function(){ return ( <div style={{opacity: this.state.opacity}}> Hello {this.props.name} </div> ) } }); ReactDOM.render( <Hello name="world" />,document.body ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |