13:Object.assign()合并对象
13.1 是ES6新增的方法,用于对象的拷贝
13.2 基础使用
<script>
const x = {a:1,b:2}
const y = {b:3,c:4}
const result1 = Object.assign(x,y)
console.log(result1); // {a:1,b:3,c:4}
console.log(x); // {a:1,b:3,c:4}
console.log(y); // {b:3,c:4}
</script>
<script>
const x = {a:1,b:2}
const y = {b:{e:7},c:4}
const result1 = Object.assign(x,y)
console.log(result1); // {a:1,b:{e:7},c:4}
console.log(x); // {a:1,b:{e:7},c:4}
console.log(y); // {b:{e:7},c:4}
</script>
<script>
const x = {a:1,b:{e:6}}
const y = {b:{e:7},c:4}
const result1 = Object.assign(x,y)
console.log(result1); // {a:1,b:{e:7},c:4}
console.log(x); // {a:1,b:{e:7},c:4}
console.log(y); // {b:{e:7},c:4}
</script>
14:mapGetters简化state
14.1 基础用法
store中,注意getters中不分模块
// 简化state中的数据,且不分模块
const getters = {
// 如果获取数据较慢,在还没有获取到数据就执行 getters代码,防止遍历undefined报错
goodsList:state=>state.searchInfo.goodsList||[]
}
使用
import {mapGetters} from 'vuex'
computed:{
...mapGetters(["goodsList"]),
}
15:如果服务器的请求参数不是必带的,那么将相应属性置空,仍然会将相应属性带给服务器。如果将相应属性设置为undefined,那么则不会将相应属性带给服务器。
15.1 将请求参数属性设置为空时
methods:{
// 删除分类名字
removeCategoryName(){
// 将categoryName,category1Id,category2Id,category3Id请求属性置空
this.searchParams.categoryName = ''
this.searchParams.category1Id = ''
this.searchParams.category2Id = ''
this.searchParams.category3Id = ''
// 重新获取数据
this.$store.dispatch("searchInfo",this.searchParams);
}
}
请求数据会发给服务器
15.2 将请求参数属性设置为undefined时
methods:{
// 删除分类名字
removeCategoryName(){
//
this.searchParams.categoryName = undefined
this.searchParams.category1Id = undefined
this.searchParams.category2Id = undefined
this.searchParams.category3Id = undefined
// 重新获取数据
this.$store.dispatch("searchInfo",this.searchParams);
}
}
请求数据不会发给服务器