• React学习笔记


    React学习笔记

    1. jsx语法规则

      /*
                jsx语法规则
                1、定义虚拟dom时,不要写引号
                2、标签中混入JS表达式时要用{}
                3、样式的类名指定不要用class,要用clasName
                4、内联样式要用style={
      {key: value}}的形式去写
                5、只有一个根标签
                6、标签必须闭合
                7、标签首字母
                    ①若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错
                    ②若大写字母开头,react就会去渲染对应的组件,若组件没有定义,则报错
      */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    定义虚拟 DOM 时,不要写引号

    JSX 采用下面的方式创建虚拟 DOM

    //1. 创建虚拟DOM
    const VDOM = (
    	

    hello,react

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    标签中混入 JS 表达式要用 {}

    const myId = 'aTgUiGu'
    const myData = 'Hello,rEaCt' 
    
    //1. 创建虚拟DOM
    const VDOM = (
    	

    {myData.toLowerCase()}

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    样式的类名指定不要用class,要用className

    const myId = 'aTgUiGu'
    const myData = 'Hello,rEaCt' 
    
     //1. 创建虚拟DOM
    const VDOM = (
        

    {myData.toLowerCase()}

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    内联样式,要使用style={ {key:value}}的样式

    const myId = 'aTgUiGu'
    const myData = 'Hello,rEaCt' 
    
     //1. 创建虚拟DOM
    const VDOM = (
         

    {color:'white', fontSize:'29px'}}>{myData.toLowerCase()}

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    只能有一个根标签

    如果我们复制一下上面的

    ,会报错,这是因为只能有一个根标签,所以添加一个
    将两个

    包起来。

    const myId = 'aTgUiGu'
    const myData = 'Hello,rEaCt' 
    
    //1. 创建虚拟DOM
    const VDOM = (
            

    {color:'white', fontSize:'29px'}}>{myData.toLowerCase()}

    {color:'white', fontSize:'29px'}}>{myData.toLowerCase()}

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    标签必须闭合

    如果我们添加一个文本输入框,如果写成 会报错,这是因为,JSX 里的标签必须闭合,所以,应该写成 。

        const myId = 'aTgUiGu'
        const myData = 'Hello,rEaCt' 
    
        //1. 创建虚拟DOM
        const VDOM = (
            

    {color:'white', fontSize:'29px'}}>{myData.toLowerCase()}

    )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    标签首字母

    若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
    若大写字母开头,react将去渲染对应的组件,若组件没有定义,则报错

    2. react脚手架配置代理总结

    方法一

    在package.json中追加如下配置

    "proxy":"http://localhost:5000"
    
    • 1

    说明:

    1. 优点:配置简单,前端请求资源时可以不加任何前缀。
    2. 缺点:不能配置多个代理。
    3. 工作方式:上述方式配置代理,当请求了3000不存在的资源时,那么该请求会转发给5000 (优先匹配前端资源)

    方法二

    1. 第一步:创建代理配置文件

      在src下创建配置文件:src/setupProxy.js
      
      • 1
    2. 编写setupProxy.js配置具体代理规则:

      const proxy = require('http-proxy-middleware')
      
      module.exports = function(app) {
           
        app.use(
          proxy('/api1', {
             //api1是需要转发的请求(所有带有/api1前缀的请求都会转发给5000)
            target: 'http://localhost:5000', //配置转发目标地址(能返回数据的服务器地址)
            changeOrigin: true, //控制服务器接收到的请求头中host字段的值
            /*
            	changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000
            	changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:3000
            	changeOrigin默认值为false,但我们一般将changeOrigin值设为true
            */
            pathRewrite: {
           '^/api1': ''} //去除请求前缀,保证交给后台服务器的是正常请求地址(必须配置)
          }),
          proxy('/api2', {
            
            target: 'http://localhost:5001',
            changeOrigin: true,
            pathRewrite: {
           '^/api2':
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
  • 相关阅读:
    不同类型的 SSL 证书解释
    【需求研发002】--备品备件系统优化
    神经网络训练过程可视化,可视化神经网络工具
    C#/VB.NET 将PPT或PPTX转换为图像
    vue柱状图+table表格
    Redis主从复制流程
    《小狗钱钱》阅读笔记(五)
    什么是产品经理&&为什么说做好一款产品需要情怀?
    micropython驱动 黑莓轨迹球
    java计算机毕业设计个人图集管理系统源码+mysql数据库+系统+lw文档+部署
  • 原文地址:https://blog.csdn.net/WEXIA666/article/details/127446501