... 解对象 在外面加{}
let obj = [1,2,3]
...obj
let obj = {a:10,b:20}
{...obj}
开启命名空间必须开启模块化
命名空间在小store里面写
...State可以使用对象写法
...mapGetter不能使用对象写法
开启命名空间后,dispatch触发的函数名前必须加模块名
...mapState('detail',['goodsDetailInfo']),//开启命名空间写法
开启不开启命名空间,对象写法一样的
...mapState({
goodsDetailInfo:state => state.detail.goodsDetailInfo
}),
...mapGetters('detail',['categoryView','skuInfo','spuSaleAttrList']), //开启命名空间
假报错以后两种解法:原因是因为undefined,把undefined给避免了
1、展示数据的时候v-if,判断如果不为undefined,再去展示渲染
2、通过计算,如果是undefined替换为不是undefined的数据
blur事件 失去焦点事件 无论输入数据是发生变化没有,事件都要触法的 -->
change事件 包含失去焦点事件, 判断输入的数据变化没有,只有变化才会触发
如果没变化,不会触发
async都是添加在函数定义前面
async本意就是异步的意思,添加了async的函数叫异步函数
异步函数内部一般情况下都有异步操作,但是不绝对
async函数特点: 功能 参数 返回值
async函数返回值一定是promise,不看return
函数返回的promise是成功还是失败 看return
return的结果决定函数返回的promise是成功还是失败
分以下情况
return是promise还是非promise
非promise数据
正常值都是成功的,成功的结果就是return的结果
抛出异常就是失败的,失败的原因是抛出的异常
promise数据
如果return的promise是成功的,那么函数返回的promise就是成功的,
成功的结果就是return的promise成功的结果
如果return的promise是失败的,那么函数返回的promise就是失败的,
失败的原因就是return的promise失败的原因