React学习笔记【1】

本文介绍了React的基本概念和使用方法,包括jsx语法、组件化开发以及虚拟DOM的优势。通过实例展示了如何创建jsx元素并渲染到页面,同时讲解了列表渲染。文章还探讨了模块化和组件化在软件开发中的重要性。
摘要由CSDN通过智能技术生成

学习地址:https://www.bilibili.com/video/BV1wy4y1D7JT
官方文档:

优点:

  1. 采用组件化模式、声明式编码,提高组件效率及组件复用率。
  2. 使用虚拟DOM+优秀的Diffing算法,尽量减少与真实DOM的交互。
  3. 在React Native中可以使用React语法进行移动端开发。

第一次尝试编码
1、jsx创建

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
	<!-- 容器 -->
    <div id="test"></div>
    
    <!-- react核心库 此库引用于react-dom.development.js之前 -->
    <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
    <!-- react-dom用于支持react操作dom -->
    <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <!-- 引入babel 用于将jsx转成js -->
    <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.js"></script>
    <!-- type="text/babel"-->
    <script type="text/babel">
        // 创建虚拟DOM
        const VDOM = <h1>Hello,React</h1>;
        // 将虚拟DOM渲染到页面
        ReactDOM.render(VDOM, document.getElementById('test'));
    </script>
</body>

</html>

2、js创建

<!-- react核心库 此库引用于react-dom.development.js之前 -->
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<!-- react-dom用于支持react操作dom -->
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<!-- babel.js 可不引入 但是其他两个需要引入 -->
<script type="text/javascript">
	//创建虚拟DOM
	const VDOM = React.creatElement('h1',{id:'ceshi'},'Hello React');
	//将虚拟DOM渲染到页面
	ReactDOM.render(VDOM,document.getElementById('test'));
</script>

jsx(JavaScript XML)语法规则:

  1. 定义(创建)虚拟DOM时,不要使用引号包裹。
  2. 标签中(使用变量)混入js表达式时要用{}。
  3. 样式的类名指定不能使用class,要使用className。
  4. 内联样式使用style={{key:value}}的形式。
  5. 虚拟DOM必须只有一个根标签。
  6. 标签必须闭合。
  7. 标签首字母:
    (1)、若小写字母开头,则将标签转为Html中的同名元素。
    (2)、若大写字母开头,React就去渲染对应的组件,如果找不到该组件,会报错。

列表渲染

<script type="text/babel">
	//定义列表数据 
	let list = ['Vue', 'React', 'angular'];
	//创建虚拟DOM
    const VDOM = (
            <div>
                <h1>列表渲染</h1>
                <ul>
                    {
                        list.map((item, index) => {
                        	//key为唯一标识符,严禁使用同一数据,尽量避免使用index索引,改代码仅供测试
                            return <li key={index}>{item}</li>
                        })
                    }
                </ul>
            </div>
        );
    //渲染页面
    ReactDOM.render(VDOM, document.getElementById('test'));
</script>

效果图
在这里插入图片描述
模块与组件、模块化与组件化的理解:
模块:

  1. 理解:向外提供特定功能的js程序,一般就是一个js文件。
  2. 原因:随着业务逻辑的增加,代码越来越复杂。
  3. 作用:复用js,简化js编程,提高js运行效率。

组件:

  1. 理解:用来实现局部功能效果的代码和资源的合集(html,css,js,image等)。
  2. 原因:界面功能复杂。
  3. 作用:复用编码,简化项目编码,便于维护,提高运行效率。

模块化:当应用的js都以模块的方式来编写,这个应用就是一个模块化应用。
组件化:当应用是以多组件的方式实现,这个应用就是一个组件化应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值