问题背景:
我封装了一个通用组件 common-form 组件,在新开发的页面中需要使用这个组件。
简化common-form代码是:
1 var CommonForm = Vue.extend({ 2 data: function() { 3 model: { 4 title: '' 5 } 6 } 7 });
在新开发的页面使用
Vue.extend({ template: templatem data: function() { return { model: { title: 'what happend' } } }, })
模板
var template = '<my-form :model="model"></my-form>';
注册组件
Vue.comopent('my-form', myForm)
my-form组件
var myForm = CommonForm.extend({ props: { model: {} } })
全部代码
var CommonForm = Vue.extend({ data: function() { model: { title: '' } } }); var myForm = CommonForm.extend({ props: { model: {} } }) var template = '<my-form :model="model"></my-form>'; Vue.extend({ template: templatem data: function() { return { model: { title: 'what happend' } } }, }) Vue.comopent('my-form', myForm);
在my-form组件中,props和data中model不能重复出现,否则vue会提示错误
参考资料:https://github.com/vuejs/vue/issues/2114
参考资料:https://jsfiddle.net/digitaldreams/z74v31k6/
参考资料:https://stackoverflow.com/questions/42087441/the-data-property-article-is-already-declared-as-a-prop-use-prop-default-valu