gpt4 book ai didi

javascript - Vue.js 从 html 初始化对象属性

转载 作者:行者123 更新时间:2023-12-02 14:57:51 25 4
gpt4 key购买 nike

如何从 HTML 设置组合属性(例如 composed_prop.foo)?

normal_prop设置得很好,但composed_prop.foo却没有。

示例:

<div id="app">
<sample normal_prop=1 composed_prop.foo=1 />
</div>


<script>

Vue.component('sample',{
props: {
normal_prop: 0,

composed_prop: {
default:{
foo: 0,
bar: 0
}
}
}
})


new Vue({
el: "#app"
})
</script>

最佳答案

你必须这样做:

<div id="app">
<sample normal_prop=1 :composed_prop="{foo:10, bar:20}" />
</div>

请注意,您必须绑定(bind)composed_prop,以便对表达式进行求值(而不是将其视为文字字符串)。另请注意,传入composed_prop 的对象将完全覆盖您的默认值 - 它不会尝试将属性与默认值合并。因此,如果您仅传入 {foo:10},则 composed_prop.bar 将是未定义的。

最后一点...我认为 Object 属性的默认值应该是工厂函数。像这样的事情:

Vue.component('sample',{
props: {
normal_prop: 0,

composed_prop: {
type: Object,
default:function(){ // should be a function
return { foo: 0, bar: 0 };
}
}
}
})

关于javascript - Vue.js 从 html 初始化对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35633308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com