1. react官网:https://react.docschina.org/docs/getting-started.html
2. 在jsx中嵌入表达式{},可以防注入攻击。
3. react的函数组件和class组件:props都只读,不能直接修改(单向数据流)。
4. react+electron: 原理:先启动react,生成http://localhost:3000,在启动electron ,win.loadURL("http://localhost:3000")。
npm install -g create-react-app
create-react-app my-app
cd my-app
npm start
注意:报错import in body of module,reorder to top import/first,是因为在react中jsx,import语句引入不能再const声明变量之后。
5. react添加一个包裹的虚拟节点:相当于vue的<template></template>
<></>
或
<React.Fragment></React.Fragment>
6. react中的使用require需要,window.require
const fs=window.require("fs");
const electron=window.require("electron")
7. create-react-app脚手架搭建的项目的配置:不暴露配置下,在根目录创建config-overrides.js
如配置全局样式css/scss,配置取别名。
8. react-app-rewire库去启动react项目:
"scripts":{
"start":"react-app-rewired start"
}
9. react动态绑定style和className:
9.1 动态绑定style:
<div className={{color:"red",display:isShow?"block":"none"}}></div>
9.2 动态绑定className:
<div className={['tab',isActive && "tab-active"].join(" ")}><div>
或
<div className={`tab ${isActive && "tab-active"} `}><div>
10. react的路由跳转:
10.1. npm i -D react-router-dom,npm i -D @types/react-router-dom(ts版)。
10.2. 404页面永远再最后面,exact是完全匹配path值。switch匹配到第一次出现路径,就终止向下继续匹配。
10.3 BrowserRouter包裹的所有标签组件,才会继承history/useHistory属性。