前端笔记(react-dva-umi)---前期

一、package.json依赖说明:
1、例子:"react-ace": "^8(7、8的api都不兼容).0(feature版本).0(bugfix版本)",
2、说明:
^:8及以上版本、
~:特定的bugfix版本
无:制定版本

 

二、jsx没有子元素要自动关闭(JSX elements with no children must be self-closing)

1、 例如:

<Row className="default-row-gutter" gutter={16}>
   <Col span={12} offset={12}/>
</Row>

 

三、述职ppt

写ppt过程:写出ppt内容--->根据内容写ppt--->写出ppt所讲的话,和想想要提问的问题--->加到ppt的备注中--->模拟读ppt的时间,根据时间调整要将的话--->背下所讲的话--->做好准备,提高自信。

 

 

四、umi代理域名使用场景(没啥、瞎记):

1、.env中  PORT=80

2、本地hosts  127.0.0.1 forcebot-client.jd.com

3、.umirc.local.ts

const config: IConfig = {
  "define": {
    'FORCEBOT_API_DOMAIN': '',
  },

  "proxy": {
    "/api": {
      "target": "http://fbot.jd.com",
      "changeOrigin": true,
    }
  }
}

说明:${FORCEBOT_API_DOMAIN}/api/testcase --->/api/testcase--->请求本地mock--->mock没有--->请求http://fbot.jd.com/api/testcase

 

五、数据放在index中的state还是 放在modal中的state中

1、主页的list和add页的item放到modal中的state中,<Modal>组件的visible属性放到index的state中。。其实放到哪要看情况

 

六、render()中调用变量或调用函数

例:<Dropdown.Button type="primary" overlay={this.menu}

变量:menu=(this.props.data)       当数据发生变化时,menu中的内容不会被渲染,this.props.data不会变化

函数:menu = ()=> {this.props.data }    当数据发生变化时,menu中的内容会被渲染,this.props.data会变化

 

七、jd术语

sku:商品的最小单元
spu:一个商品(最小单元的集合)

 

八、react的className与style有什么区别

都是css,用来渲染页面的,只是级别不一样。

 

九、react的组件中mount时   或  unmount变为mount时,组件中的state会置为初始态

list文件夹结构:

     $id$.tsx   页面中调用index.tsx  。

     index.tsx

路由变化:http://ip:port/forcebot/script/list(mount)--->http://ip:port/forcebot/script/list/60600(unmount--->mount)

--->http://ip:port/forcebot/script/list/60622--->http://ip:port/forcebot/script/list(unmount--->mount)

index.tsx中的加载情况变化:mount--->unmount--->mount--->unmount--->mount

 

十、react的组件中要放子组件,不能放表达式

如:

不正确:
<Row >
    {
        Array.sort(function (a, b) {
          var order = ["successes", "avg", 'errors', 'tp99','currentTheads'];
          return order.indexOf(a.index) - order.indexOf(b.index);
        })
    }
</Row>


正确:
<Row gutter={[16, 16]}>
    {
      Array.map(data => (
         <LineChart
            key={data.index} data={data}
            handlePlotClick={this.props.handlePlotClick}
         />
      ))
   }
</Row>

map与foreach的区别:map有返回值,foreach没有返回值。

 

 

十一、js中代表false的值

1、undefined(未定义,找不到值时出现)
2、null(代表空值)
3、false(布尔值的false,字符串"false"布尔值为true)
4、0(数字0,字符串"0"布尔值为true)
5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")
6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true)

例:

Array.filter()过滤false的内容:Array.filter(item => !!item)

注:!item  就是将item转为boolean类型的数据

 

十二、react特殊字符转义


      title: '描述', 
      // dataIndex: 'description', 
      key: 'description', 
      ellipsis: true, 
      render: (row) => { 
        return ( 
          <div dangerouslySetInnerHTML = {{ __html: row.description }}></div> 
        ) 
      } 
},

 

十三、通过给非受控组件加key(key改变时会重新实例化该组件)

1、key发生变化的时候会重新实例化组件
2、props只赋值给state一次(state = {}只执行一次),后续props在变化的时候,state不会跟着变化(state = {}不会再执行)
3、受控组件,组件中没有state。
4、不受控组件,组件有自己的state,页面的渲染依靠state的变化,但是想让该组件随着props变化而变化,就要加key(key变化了就会重新实例化该组件)

5、a组件从b组件中获取值,b组件中的值需要加rule,并用this.props.form.validateFields做验证,所以当a从b中获取值时,要通过callback来同步的获取,因为验证是异步的。

https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html

https://www.jianshu.com/p/514fe21b9914

 

十四、getFieldDecorator中的<Select>不能用defaultValue,应该用initialValue

用defaultValue时,报

应该用initialValue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值