React 知识点!!!

90 阅读2分钟

image.png

image.png

image.png

image.png

image.png

image.png

image.png

Hello React
     <!-- 引入核心组件库 -->
     <script type="text/javascript" src="./js库/react.development.js"></script>
     <!-- 引入react-dom  用于支持react操作dom -->
     <script type="text/javascript" src="./js库/react-dom.development.js"></script>
     <!-- 引入babel 用于将jsx转为js -->
     <script type="text/javascript" src="./js库/babel.min.js"></script>


     <script type="text/babel">/* 此处一定要写babel*/
                //1 创建虚拟dom
                 const VADOM = <h1>Hello React</h1> /* 此处不要写引号,因为不是字符串*/

                // 2 渲染虚拟dom到页面
             //ReactDOM.render()  用于将模版转换成HTML语言,渲染DOM,并插入指定的DOM节点中  该方法有3个参数 :
             // 模版的渲染内容(HTML形式)     需要插入的DOM节点      渲染后的回调(一般用不到)
                ReactDOM.render(VADOM,document.getElementById('test'));
     </script>

创建虚拟dom两种方法 jsx和js

2-使用jsx创建虚拟DOM
3-使用js创建虚拟DOM
<script type="text/javascript">
 window.onload=function(){
// 1.创建虚拟DOM
// React.createElement(标签名,属性[对象],内容)
    // const VDOM =(
    //      <h1 id='title'>
    //          <span> Hello React</span>
    //         </h1>
    // )
   const VDOM = React.createElement('h1',{id:'title'},React.createElement('span',{},'Hello React'))
// 2.渲染虚拟DOM到页面
   ReactDOM.render(VDOM,document.getElementById('test'));
 }

</script>

虚拟dom和真实dom

2-使用jsx创建虚拟DOM
//    debugger;
//    console.log(typeof VDOM);//object
//    console.log(VDOM instanceof Object);//true

/**
 *  关于虚拟DOM
 *  1 本质是Object类型的对象( 一般对象)
 * 2.虚拟DOM比较“轻”,真实DOM比较“重”,因为虚拟DOMReact内部在用,无需真实DOM上那么多的属性。
	3.虚拟DOM最终会被React转化为真实DOM,呈现在页面上。
 * 
 * */ 
</script>

什么是JSX?

要想写jsx的语法,那么就得先了解jsx是什么,有什么用?借用百度的话:

JSX是一种JavaScript的语法扩展,运用于React架构中,其格式比较像是模版语言,但事实上完全是在JavaScript内部实现的。元素是构成React应用的最小单位,JSX就是用来声明React当中的元素,React使用JSX来描述用户界面。

那么本质就出来了,JSX说白了就是js语法的一个扩展,是一个看起来很像 XML 的 JavaScript 语法扩展!我们也许不一定使用JSX,但是需要知道JSX有什么优点!

JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化 它是类型安全的,在编译过程中就能发现错误 使用 JSX 编写模板更加简单快速

reactjs基础:jsx小练习

jsx小练习
<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作DOM -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入babel,用于将jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>

<script type="text/babel" >
	/* 
		一定注意区分:【js语句(代码)】与【js表达式】
				1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方
							下面这些都是表达式:
									(1). a
									(2). a+b
									(3). demo(1)
									(4). arr.map() 
									(5). function test () {}
				2.语句(代码):
							下面这些都是语句(代码):
									(1).if(){}
									(2).for(){}
									(3).switch(){case:xxxx}
	
 */
	//模拟一些数据
	const data = ['Angular','React','Vue']
	//1.创建虚拟DOM
	const VDOM = (
		<div>
			<h1>前端js框架列表</h1>
			<ul>
				{
					data.map((item,index)=>{
						return <li key={index}>{item}</li>
					})
				}
			</ul>
		</div>
	)
	//2.渲染虚拟DOM到页面
	ReactDOM.render(VDOM,document.getElementById('test'))
</script>

函数式组件?

03-jsx小练习

类组件

原生 html元素名称以小写字母开头,符合驼峰命名法规范,比如hello、myComponent。 自定义的 React 类名以大写字母开头,比如 HelloWorld不能写成 helloWorld。 React组件类只能包含一个顶层标签。 React类式组件使用的必要条件

组件类必须继承React.Component类 必须要有render方法; render方法的return返回的就是组件的内容 类式组件,执行ReactDOM.render函数的原理:

首先找到组件对应的类,并new了这个类的一个实例 通过实例找到原型上的render函数并执行 ReactDOM.render接收到原型上render函数retrun返回的虚拟dom 将虚拟dom转换成真实dom,并插入到页面中

03-jsx小练习