refs
修改的是 src/index.js
获取真实的DOM节点:
组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。
只有当它插入文档以后,才会变成真实的 DOM 。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class AutoFocusInput extends Component{ componentDidMount(){ this.refs.text.focus(); } render(){ return ( <input ref="text" /> ) } } ReactDOM.render( <AutoFocusInput />, document.getElementById('root') );
|
this.props.children
嵌套的结构在组件内部都可以通过 props.children 获取到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Card extends Component { render(){ return( <div> {this.props.children[0]} //这里的children是个数组 </div> ) } } ReactDOM.render( <Card> <h2>标题</h2> <div>开源免费专业简单</div> 订阅:<input /> </Card>, document.getElementById('root') );
|
dangerouslySetInnerHTML
因为React.js的转义特性,所以 
如何展示动态的效果呢?需要给 dangerouslySetInnerHTML
传入一个对象,这个对象的 __html
属性值就相当于元素的 innerHTML
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Editor extends Component { constructor(){ super(); this.state = { content : '<h1>人生几何 能够得到只鸡</h1>' } } render(){ return( <div className="editor-wrapper" dangerouslySetInnerHTML={{__html:this.state.content}}></div> ) } } ReactDOM.render( <Editor />, document.getElementById('root') );
|