react概念及其jsx

1.学习react之前,我们需要复习以下知识点

class 类

es6 高阶数组–jsx里面

es6 语法

模块化 node

npm 包的使用

请求

2.两个官方文档

中文 https://react.docschina.org/

英文 https://reactjs.org/

3.react的特点

  1. 声明式编码 => 通过已经封装(原生js的方法)的纯函数来实现你 告诉react我要干啥,我干完之后剩下的事情由react完成(渲染页面),还有一种编码方式是命令式编码!
  2. 纯函数:不影响外部变量,不影响外部的作用域!
  3. 组件化
  4. React-native 移动开发,andriod和ios跨平台开发
  5. 使用的虚拟DOM加上优秀的diff算法
  6. react非常接近原生js

4.引入react需要哪些东西

react的核心库

react用于操作DOM的库

5.构建一个简单的React应用

1.确定容器

2.构建虚拟DOM

​ React.createElement(标签名,标签属性,标签内容)

3.由react渲染页面

​ ReactDom.render(虚拟DOM,页面节点)

​ 虚拟DOM比原生DOM更轻快,但最后会被转化成原生DOM

<div id="box1">

    </div>


    <script src="../js//react.development.js"></script>
    <script src="../js//react-dom.development.js"></script>
    <script>
        //创建虚拟节点
        let VNode = React.createElement('h1', { id: 'h1' }, 'hello world')
        //挂载节点
        ReactDOM.render(VNode, document.querySelector('#box1'))
    </script>

6.如果要嵌套结构,那该怎么做呢?

 <div class="box1"></div>

    <script src="../js//react.development.js"></script>
    <script src="../js//react-dom.development.js"></script>

    <script>
        let VNode = React.createElement('h1', { id: 'node' }, React.createElement('span', { class: 'span' }, '66666'))
        ReactDOM.render(VNode, document.querySelector('.box1'))
    </script>

这样做,如果一直往下做下去,显得太过于复杂了,因此,我们引入了jsx语法

7.jsx语法

首先,引入jsx的一个script标签

<script src="../js//babel.min.js"></script>
    <script type="text/babel"> // 一定要设置
        // 创建虚拟DOM
        let VDOM = <h1><span>Hello,World</span></h1>;

        // 由react渲染页面 
        ReactDOM.render(VDOM,document.getElementById("root")) // 唯一一次操作原生DOM节点
    </script>

总体例子:

 <div id="box1"></div>


    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js//babel.min.js"></script>
    <script type="text/babel">
        let VNode = <h1>
            <span>hello world!</span>
        </h1>
        ReactDOM.render(VNode, document.querySelector('#box1'))
    </script>

8.jsx语法总结

  1. 定义虚拟DOM的时候不需要写上字符串

  2. jsx中写变量怎么写? {变量:表达式} ==> 模板字符串少了$

​ {} 必须是表达式 => 必须有返回值 || 必须有值

​ if(){}else switch() for() while等语法

  1. 遇到 语法<开头代码,会以标签的形式去解析,转化成同名的html标签,

​ 若html中没有这个同名标签,会报错

​ 了解 => 若是遇到<大写开头字母,react就去渲染对应的组件,若没有定义组件会报错

  1. 样式怎么写

​ 行内 style={{样式名:“样式值”}}

​ 样式名使用小驼峰写法

<span style={{color:“red”,backgroundColor:“green”}}>{ ele }

;

​ 类名 使用className定义,class也会起作用,但是会报错!

  1. 虚拟DOM只能存在一个根节点

  2. jsx支持换行, 建议你使用()包裹,避免出现bug问题

  3. 标签必须闭合

  4. arr 直接放入{arr}中 好像是将数组中的每一项拿出来,渲染到页面

  5. {} 必须是表达式 => 必须有返回值 || 必须有值

    ​ map filter reduce 10 a + b

  6. {} 会自动循环数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值