vue.js - Vue - 嵌套属性的默认值

标签 vue.js vuejs2

如何设置对象 prop 的嵌套属性的默认值?

显然,只有当第一级对象 propundefined 时,Vue 才会解析嵌套属性的默认值。

例子:

Vue.component('example', {
  props: {
    options: {
       type: Object,
       default: function() {
          return {
             nested: {
                type: Object,
                default: function(){
                   return 'default value'
                }
             }
          }
       }
    }
})

最佳答案

Apparently, Vue parse default value of nested properties only if the fist level Object prop is not undefined.

是的,这是有道理的,因为如果你没有外部对象,你将无法拥有内部或嵌套属性。

所以我认为将第一级对象的空对象设置为默认 {} 更具可读性,您应该针对 undefined 或 < strong>null,就像下面的例子:

<script>
  export default {
    props: {
      option: {
        type: Object,
        default: () => {},
        required: false
      }
    },
    computed: {
      optionReceived: function () {
        const defaultNestedValue = 'Some default value'
        const option = this.option.nested || defaultNestedValue;
        return option;
      }
    }
  }
</script>

关于vue.js - Vue - 嵌套属性的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46720152/

相关文章:

javascript - 接收 "failed to load component"

javascript - 未捕获的 TypeError : this. $store.commit 不是函数

javascript - Vuejs中的: How to get an array index id?问题

vuejs2 - 在 Vue 中,v-model.trim 的用途是什么

javascript - 当数组通过 props 时,Vue js v-for 不起作用

javascript - 如何添加带有独立 router.js 文件的 Vuetify 选项卡?

javascript - html/css 和 javascript mvvm 框架集成的 Git 工作流程单独的存储库

vue.js - 无法将国际化插件 i18n 与 Pinia Store 一起使用

javascript - 使用 Vue.js 更改 DOM 元素的值

javascript - 如何在 Nuxtjs 上放置一个简单的 JS 小部件/小工具 block ?