ES6常见语法

解构赋值:
一.对象的解构赋值:
常遇到的场景

export default class List extends PureComponent{
    constructor(){
        super();
        this.state = {
            userInfo:"李四",
            arr:[]
        }
        this.handleAdd = this.handleAdd.bind(this);
        this.handleModify = this.handleModify.bind(this);
    }
    render(){
        let {userInfo,arr} = this.state;//对象的解构赋值
        return (
            <div>
                <h3>{userInfo}</h3>
                <ul>
                    {
                        arr.map((item,index)=>(
                            <li>{item}</li>
                        ))
                    }
                </ul>
                <button onClick={this.handleAdd}>添加</button>
                <button onClick={this.handleModify}>修改</button>
            </div>
        )
    }
    handleAdd(){
        //render函数不会执行 因为newArr还是引用这arr的地址 地址没有发生改变
        let newArr = this.state.arr;
        newArr.push("姓名");
        this.setState({
            arr:newArr
        })
    }
    handleModify(){
        //会执行  因为会做浅比较
        this.setState({
            userInfo:"张三"
        })
    }
}

解构赋值对提取JSON对象中的数据,尤其有用

let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};
 
let { id, status, data: number } = jsonData;
 
console.log(id, status, number);
// 42, "OK", [867, 5309]

输入模块的指定方法

加载模块时,往往需要指定输入那些方法。解构赋值使得输入语句非常清晰。

const { SourceMapConsumer, SourceNode } = require("source-map");
// 导入react组件
import {ReactComponent} from './xxxComponent.jsx';

二.数组的解构赋值
正常解构:

let [a, b, c] = [1, 2, 3];
console.log(a, b, c) //  1 2 3
let [ , , third] = ["foo", "bar", "baz"];
console.log(third) // baz
let [head, ...tail] = [1, 2, 3, 4];
console.log(head, tail) // 1 [2,3,4]
let [foo1] = [1,2,3,4,5,6];
console.log(foo1) // 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值