1:React基本概念

原生js的痛点:

  1. DOM繁琐
  2. 大量重绘重排
  3. 没有组件化编码,代码复用率低

React

概念:用于构建用户界面的js库,将数据渲染为HTML视图的js库

特点:

  • 采用组件化模式,声明式编码
  • 在React Native中可以适用React语法进行移动端开发
  • 适用虚拟DOM+Diffing算法,减少与DOM的交互

文件:

  1. react.js:React核心库。
  2. react-dom.js:提供操作DOM的react扩展库。
  3. babel.min.js:解析JSX语法代码转为JS代码的库。

书写React的步骤:

  1. 创建虚拟DOM(适用JSX的书写方式,用babel翻译即可,书写上贴近htmnl,比较便捷)
  2. 将虚拟DOM渲染到页面(虚拟DOM object 类型)

虚拟DOM:

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

JSX的语法规则:

1.定义虚拟DOM时,不要写引号。
2.标签中混入JS表达式时要用{}。
3.样式的类名指定不要用class,要用className。
4.内联样式,要用style={{key:value}}的形式去写。
5.只有一个根标签
6.标签必须闭合
7.标签首字母
(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。

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}

杂点:

命名式编码:指挥操作一步步
声明式编码:声明一件事情、程序自动执行
查看类型:

console.log('虚拟DOM',VDOM)
console.log(typeof VDOM)
console.log(VDOM instanceof Object)

XML早期用于存储和传输数据

<student>
	<name>Tome</name>
	<age>19</age>
</student>

JSON

"{"name":"Tom","age":19}"
//parse:快速地将JSON中的字符串解析成JS数组和对象
//stringfy:快速地将JS中的数组和对象转换成JSON

React小例子

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

<head>
    <meta charset="UTF-8">
    <title>React小例子</title>
    <!--React语句中要指定样式,用的是className-->
    <!--内联样式中,要使用style={{key:value}}的方式-->
    <style>
        .title {
            color: aqua;
            background-color: bisque;
        }
    </style>
</head>

<body>
    <div id="test"></div>

	<!--引入三个库-->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <script type="text/javascript" src="../js/babel.min.js"></script>

	<!--适用babel将JSX语句翻译成JS-->
    <script type="text/babel">
    	//存放数据的数组
        const arr = ['Angular','React','Vue']  
        //创建虚拟DOM,适用的是括号,React中书写的是JSX语句,JSX语句中JS表达式才有用
        const VDOM = (
            <div> //一定要有个根节点
                <h1>前端开发</h1>
                <ul>
                    {
                    	//使用map遍历数组
                        arr.map((item,index)=>{
                            return <li key={index}>{item}</li>
                        })
                    }
                </ul>
            </div>
        )
        //将虚拟DOM渲染到页面上
        ReactDOM.render(VDOM,document.getElementById('test'))
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值