javascript - 以编程方式向 Vue 组件添加属性
问题描述
假设有一个组件在设计时<x>
不知道某些属性a
,但它应该被任意配置和支持<x>
。
const env = { props: { a: Number } }
<x :env="env" :a="38">
这有可能吗?
解决方案
如果您没有在组件中注册道具,x
例如
//x.vue
<script>
export default {
props : ['a']
}
</script>
那么组件将不知道您传递给它的道具的任何信息。您传递给组件但未注册的道具将是未定义的。
但是,将完整的对象作为 prop 传递给组件不是问题,例如
/*
const obj = {
a : 1,
b : 2,
c : 3
}
*/
<x :dynprop="obj" />
<script>
export default {
props : ['dynprop'],
mounted() {
console.log(dynprop.a);
// 1
}
}
</script>
请参阅官方 Vue 文档中将对象作为道具传递: https ://vuejs.org/v2/guide/components-props.html#Passing-the-Properties-of-an-Object
这可能是你最好的选择,因为
Vue 不允许动态地将新的根级响应属性添加到已创建的实例中。
推荐阅读
- r - 用点图将图例添加到 ggplot2 线
- php - 如何在 Laravel 中使用 Mail::Queue
- wordpress - Reactjs构建URL在wordpress中不起作用
- date - 获取上周一的日期
- html - CSS - nth-child() 示例
- php - 使用 sha256_password 时如何使用 PHP 的 mysqli 连接到 MySQL(访问被拒绝)
- c# - 如何在 EF 核心中实现每个租户的架构?
- javascript - AngularJS 检查条件并返回 true 或 false
- c# - 如何正确手动配置 NodaTime IWeekYearRule?
- java - 使用限制和偏移量从服务器加载地图标记