javascript - Vue : const { state = {} } = this. $store 中的奇怪符号;

标签 javascript vue.js vuex notation

我正在关注一个已经创建的项目,我在一个使用 Vuex 的 Vue 项目中遇到了这个符号:

const { state = {} } = this.$store;
const { orders = {} } = state;

它似乎定义了一个名为 state 的本地对象,该对象设置为 Vuex 存储的值...然后将其设置为另一个名为“orders”的对象,但我对符号本身有点迷茫.即这表明什么:

{ variable = {} } = anotherObj

还有这个符号如果存在的话叫什么。 (这样我就可以用谷歌搜索它并弄清楚它是如何处理深度克隆的,等等,因为它似乎是一种克隆对象的方法。)...或者这可能是 vuex 特有的东西?

最佳答案

这个:

const { state = {} } = this.$store;

destructuring assignment如果源 ( this.$store ) 没有属性 state,则使用默认值或拥有它但值为 undefined .结果将是 state将具有 this.$store.state 的值如果该属性存在并且没有值 undefined , 或者如果该属性不存在或具有值 undefined 将有一个新的空白对象.

示例(使用字符串而不是对象,但它是相同的主体):

const obj1 = {};
const { a = "default" } = obj1;
console.log(a);        // "default"

const obj2 = {
    b: "value from obj2"
};
const { b = "default" } = obj2;
console.log(b);        // "value from obj2"

关于javascript - Vue : const { state = {} } = this. $store 中的奇怪符号;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58205670/

相关文章:

JavaScript 保存这个。 image.onLoad 内部的变量

javascript - 如何为响应式菜单的下拉设置动画?

javascript - React-bootstrap-table-仅在单击行后展开组件,默认情况下不展开

vue.js - 我可以在Vue原生组件中导入并使用Vue组件吗?

javascript - Includes() 函数替代 React

javascript - Vuejs 上传多个图像在没有 CDN 的情况下无法工作

javascript - vuejs/vuex 中 Props 的顺序、计算和创建

javascript - 无法正确进行 Array.filter

javascript - Vue - 是否可以在组件的计算属性中使用 Vuex getter?

javascript - Vuex:如何定义一个状态变量,其值基于另一个状态变量的值?