React-1:搭建脚手架

初识 React 与 JSX

加载引入

        - 基于浏览器 \<script\> 的模式

        - 基于自动化的集成环境模式


基于浏览器 \<script\> 的模式

        React.js 框架本身包含两个部分

                - react.js:提供 React.js 核心功能代码,如:虚拟 dom,组件

                - react-dom.js:提供了与浏览器交互的 DOM 功能,如:dom 渲染

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<body>

    <div id="app"></div>

 

    <script src="./js/react.production.min.js"></script>

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

    <script src="js/app.js"></script>

</body>

</html>


XSS

为了有效的防止 `XSS` 注入攻击,`React DOM` 会在渲染的时候把内容(字符串)进行转义,所以字符串形式的标签是不会作为 `HTML` 标签进行处理的

ReactDOM.render

        ReactDOM.render(element, container[, callback])

                element:要渲染的内容

                container:要渲染的内容存放容器

                callback:渲染后的回调函数


编程范式

        就是编程的一种模式,比较流行的一些编程范式

                - 命令式编程

                - 声明式编程

                - 函数式编程

                - ......

命令式编程

        告诉计算机怎么做(How?) - 过程

        在前面的原生 WebComponent 中,我们 UI 的构建是使用了命令式的编程方式来完成的

声明式编程

        告诉计算机我们要什么(What?) - 结果

React.js 中的声明式 UI


使用 JSX            加载babel:语法转换工具

引入JSX解析库

babel-standalone.js:在浏览器中处理JSX

        <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>

        <script type="text/babel" src="js/app.js"></script>

> 注意:如果包含或引入的代码中包含JSX,需要设置 `script` 标签的 `type` 属性为:text/babel

    `JSX` 是一个基于 `JavaScript` + `XML` 的一个扩展语法

        - 它可以作为 `值` 使用

        - 它并不是 `字符串`

        - 它也不是 `HTML`

        - 它可以配合 `JavaScript 表达式` 一起使用


DOM对象与 Virtual DOM

        DOM 对象

                浏览器会把页面中的元素映射为 JavaScript 中的对象,在 JavaScript 中通过对这些对象的访问来获取页面中对应元素及其内容。

                同时,对这些对象进行某些操作,又会反馈到页面中对应的元素上面。

                但是,原生 JavaScript DOM 对象内容和结构太复杂,有很多的特性是我们平时很少用到的,而且我们对对象的操作会立即反馈

                到页面(渲染),影响性能

        虚拟 DOM

                virtual DOM,参考原生 DOM 对象构建的一个对象,它的结构足够简单,同时优化渲染逻辑,减少变化带来的渲染性能影响


JSX语法规则

        结构

                每一个独立 `JSX` 结构的顶层有且只能有一个顶级父元素

 

在JSX中嵌入表达式

        在 `JXS` 中可以使用 <u>{表达式}</u> 嵌入`JavaScript`表达式

表达式:产生值的一组代码的集合

        - 变量

        - 算术运算

        - 函数调用

        - ……

JSX语法示例

        在 `JSX` 中,表达式输出的内容类型与使用位置也有一些区别

JSX中的注释

输出数据类型

        - 字符串、数字:原样输出

        - 数组:转成字符串,数组.join('')

                  - 使用 空字符串 而不是默认的 逗号 连接

        - 其它对象不能直接输出

        - 布尔值、空、未定义 会被忽略

在属性上使用 表达式

        JSX 中的表达式也可以使用在属性上,但是使用的时候需要注意

                - 当在属性中使用 {    } 的时候,不要使用引号包含

JSX 更偏向 JavaScript, 所以对于一些特殊的属性,使用的是 JavaScript 中的属性名风格

为了更加方法的操作元素的 style,针对 style 这个属性有特殊的处理

        这里的两个 {{}} ,外部的大括号表示的是前面说的表达式语法中的大括号,里面的大括号是表示对象的大括号

列表渲染

        如果需要渲染一组数据,我们可以通过遍历(数组遍历、对象变量……)等操作,返回一组 JSX

数据

数组

对象

key

        默认情况下,React 从性能上考虑,会尽可能的复用结构,针对 同组可变列表 结构,为了避免出现某些方面的问题,通常会给

        每一个列表添加一个 唯一的 key

条件渲染

三元运算符

与或运算符

 


Create React App  脚手架

        Create React App 是一个使用 Node.js 编写的命令行工具,通过它可以帮助我们快速生成 React.js 项目,并内置了 Babel、                       Webpack 等工具帮助我们实现 ES6+ 解析、模块化解析打包,也就是通过它,我们可以使用 模块化 以及 ES6+ 等更新的一些 特性。            同时它还内置 ESLint 语法检测工具、Jest 单元测试工具。还有一个基于 Node.js 的 WebServer 帮助我们更好的在本地预览应用,                其实还有更多。这些都通过 Create React App 帮助我们安装并配置好了,**开箱即用**


安装与使用

        通过 npm、yarn、npx 都可以


安装    npm

        npm i -g create-react-app

安装    yarn

        yarn global add create-react-app

使用

        安装完成以后,即可使用 create-react-app 命令

        create-react-app <项目名称>

        或者通过 npx 的方式

npx

        npx create-react-app <项目名称>

项目目录结构说明

        运行命令以后,就会在运行命令所在目录下面创建一个以项目名称为名的目录

命令脚本

        create-react-app 同时也提供了其它一些命令来帮助我们进行开发

npm  start

        启动一个内置的本地 WebServer,根目录映射到 './public' 目录,默认端口:3000

npm test

        运行 Jest 测试

npm run build

        打包应用(准备上线)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值