10.思考题与解答
同学们好,为了加深理解,同时也检验我们的学习效果,我设计了两个思考题:
- 如果不用JSX,如何利用React在页面上渲染字符串“Hello JSX”
- 从源代码
ReactDOM.render(<div className='test-class' style=\{\{color: 'red'\}\}>Simple React App<span>xx1</span><span>xx2</span></div>, document.getElementById('root'))到页面显示经历过了哪些关键步骤。
需要说明的是,我并没有去网上找现成的面试题,因为当对一个事物的理解达到一定深度,那些表面的面试题都会迎刃而解,建议大家学习其他东西的时候,也尽量不去背诵面试题,避免对时间的浪费,背诵本身就意味着流于表面,当然一些可以帮助启发我们对课程内容进行深度掌握的面试题,我也可能会和大家一块思考学习。
第一题
如果不用JSX,如何利用React在页面上渲染字符串“Hello JSX”
我们在官方文档有一篇文章进行了介绍。 这里,不用关心文档中类组件的写法,我们后续会介绍。这里表达的核心意思就是,不直接写JSX,而是手写JSX转化后的函数调用。 <div>Hello JSX</div>;->return React.createElement('div', null, 'Hello JSX'); 这个转换的方式和原理已经在本章介绍过,就不在这里赘述。
第二题
根据本章的学习,从JSX源代码(<div>Hello JSX</div>)到显示到界面上,需要经历哪些关键环节
JSX -> 转译成函数调用 -> 执行函数调用返回虚拟DOM -> 将虚拟DOM转化成DOM -> 将生成的DOM挂载到DOM上 目前能思考到这些,说明本章的内容基本掌握,随着课程的深入,本题的答案会更加丰富。