如何从 vue 中的 mixin / 生命周期钩子动态创建道具?
我尝试了以下方法:
function install(Vue, Options) {
Vue.mixin({
beforeCreate: function() {
this.$options.props = {
name: {
type: String
},
age: {
type: Number
},
gender: {
type: String
}
}
}
})
}
const PropEditor = {install}
module.exports = PropEditor
但上面的代码不起作用。我也尝试过使用 this.props = {... 这也不起作用。
我已经遍历了调试器中的每一行,并仔细查看了 vue 的内部初始化函数,但我无法弄清楚为什么 props 没有设置。
我想动态编辑道具的原因是我想创建一个插件,允许我们使用更高级的道具定义语法并对道具本身进行更严格的验证。这样做的方式是在组件上设置另一个属性,例如输入,然后在 beforeCreate 中对其进行处理以创建 props 属性。