React 学习

172 阅读2分钟

React是一个用户构建用户界面的 JavaScript 库。-----中文手册:

react.docschina.org/

react.js 使用

- React.js 提供React.js 核心功能代码,如: 虚拟dom,组件 React.createElement(type,props,children);
- ReactDOM 提供了与浏览器交互的 DOM功能,如:dom 渲染
    - ReactDOM.render(Vnode,container[,callback])
        - Vnode: 要渲染的内容
        - conainer: 要渲染内容的存放容器
        - callback:渲染后的回调函数

JSX

JSX 是一个基于JavaScript + XML的扩展语法
  - 它可以作为值使用
  - 它并不是字符串
  - 它也不是HTML
  - 它可以配合JavaScript 表达式一起使用

插值表达式

在JSX中使用 {表达式} 嵌入表达式
表达式:产生值的一组代码的集合,比如:
  - 变量
  - 算数运算
  - 函数调用
  ...
注意: 分清楚表达式 与 语句的区别 if、for、while 这些都是语句,JSX不支持语句

各种类型内容在插值中的使用

- 注释
	{/*单行注释*/}
    {/* 
    	多行注释
     */}

输出的数据类型

- 字符串、数字: 原样输出
- 布尔值、空、未定义 会被忽略

列表渲染

- 数组 
	- 数组在渲染时,必须有 key 值
- 对象 
	- 对象数组在使用时不能直接渲染,可以使用
    		- Object.key(obj).map((item,index) => {obj[item] -对象中每个值})

在属性上使用表达式

JSX 中的表达式也可以使用在属性上,但是使用的时候需要注意:
- 当在属性中使用 {} 的时候,不要使用引号包含

JSX 使用注意事项

- 必须有,且只有一个顶层的包含元素 - React.Fragment 即 <Fragment></Fragment>
- JSX 不是HTML,有很多属性在编写时不一样
	- className 
    		- className === class
  	- style 
    		- style={{ color:red;font-size:12px;}}
    	- 列表在渲染时,必须要有 key 值
        - 在 JSX 的所有标签必须 闭合
        - 组件的首字母一定要大写,标签一定要小写

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

安装与使用

可以通过 npm、yarn、npx ;

安装

npm
npm i -g create-react-app
yarn
yarn global add create-react-app

使用

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

create-react-app <项目名称>

命令脚本

启动项目

启动一个内置的本地WebServer ,根目录映射到 “./public” 目录,默认端口:3000 当开启多个 react项目时,控制台会提示 是否打开新的窗口来运行项目。

npm start / yarn start
运行Jest测试
npm run test
打包
npm run build