# react-test
**Repository Path**: annnk/react-test
## Basic Information
- **Project Name**: react-test
- **Description**: react 学习
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-06-25
- **Last Updated**: 2023-08-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# react-test
#### 介绍
react 学习
1.react是什么?
react用于构建用户界面的JavaScript库
react是一个将数据渲染为HTML视图的开源JavaScript库 2.谁开发的?
facebook开发,开源
3.为什么要学?
提高开发效率
4.react特点
采用**组件化**模式,**声明式编码**,提高开发效率及组件复用率。
react native中可以使用react进行**移动端开发**。
使用**虚拟DOM**+优秀的**Diff算法**,减少与真实DOM交互。
5.学习react需要掌握的JavaScript基础
判断this指向、class类、es6+、npm包管理、原型和原型链、数组常用方法、模块化
React入门
react中文网:https://react.docschina.org/
### JSX语法规则
1.定义虚拟DOM,不要写引号
2.标签中混入JS表达式时要用{}
3.样式的类名用className(class在es6中是关键字)
4.内联样式,要用style={{key:value}}的形式
5.只有一个根标签
6.标签必须闭合
7.标签首字母
(1)若小写字母开头,则将改变标签转为html中同名元素,若html中无该标签对应的同名元素,则报错
(2)若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错
chorme浏览器插件,React Developer Tools
### 组件
1.函数式组件
```js
function Component() {
return
组件
}
ReactDOM.render(, 节点)
````
2.类式组件
```js
class MyComponent extends React.Component {
constructor(props){
super(props)
this.state = {}
}
render() {
用类定义复杂组件
}
}
ReactDOM.render(, 节点)
```
三大核心属性
1.state
2.props
3.refs与事件处理
#### 软件架构
软件架构说明
目录结构 这里罗列了 Umi 项目中约定(或推荐)的目录结构,在项目开发中,请遵照这个目录结构组织代码。
├── config
│ └── config.ts
├── dist
├── mock
│ └── app.ts|tsx
├── src
│ ├── .umi
│ ├── .umi-production
│ ├── layouts
│ │ ├── BasicLayout.tsx
│ │ ├── index.less
│ ├── models
│ │ ├── global.ts
│ │ └── index.ts
│ ├── pages
│ │ ├── index.less
│ │ └── index.tsx
│ ├── utils // 推荐目录
│ │ └── index.ts
│ ├── services // 推荐目录
│ │ └── api.ts
│ ├── app.(ts|tsx)
│ ├── global.ts
│ ├── global.(css|less|sass|scss)
│ ├── overrides.(css|less|sass|scss)
│ ├── favicon.(ico|gif|png|jpg|jpeg|svg|avif|webp)
│ └── loading.(tsx|jsx)
├── node_modules
│ └── .cache
│ ├── bundler-webpack
│ ├── mfsu
│ └── mfsu-deps
├── .env
├── plugin.ts
├── .umirc.ts // 与 config/config 文件 2 选一
├── package.json
├── tsconfig.json
└── typings.d.ts
.env 环境变量配置 PORT=8888 COMPRESS=none
.umirc.ts 与 config/config.ts 文件功能相同,2 选 1 。.umirc.ts 文件优先级较高
// package.json
```json
{
"scripts": {
"dev": "umi dev",
"dev:pre": "cross-env UMI_ENV=pre umi dev"
}
}
```
# 配置路由
在配置文件中通过 routes 进行配置,格式为路由信息的数组。
比如:
```ts
// .umirc.ts
export default {
routes: [
{path: '/', component: 'index'},
{path: '/user', component: 'user'},
],
}
```
# 插件
使用插件 在普通的 Umi 应用中,默认 不附带任何插件 ,如需使用 Max 的功能(如 数据流、antd 等),需要手动安装插件并开启他们:
pnpm add -D @umijs/plugins 如开启 antd 插件:
```ts
// .umirc.ts
export default {
plugins: ['@umijs/plugins/dist/antd'],
antd: {}
}
```
# 代理
```js
export default {
proxy: {
'/api': {
'target': 'http://jsonplaceholder.typicode.com/',
'changeOrigin': true,
'pathRewrite': {'^/api': ''},
},
},
}
```
#### 安装教程
1. node v16+,pnpm v7.3+
2. pnpm dlx create-umi@latest
3. pnpm i
4. 启动项目:pnpm dev