你至少有三种方法:
1) 正如您正在做的那样,通过prop
属性连接数据,但将.sync
属性添加到其中.这样,当表单上的数据被修改时,组件上的数据也会自动被修改.这个解决方案的问题是,更新是自动的,所以如果验证失败,或者用户关闭模式而不保存更改,这些都会被保存.例如:https://jsfiddle.net/Lz3aq64f/
2) 另一种方法是,在保存事件时,使用保存的信息将其模式设置为$dispatch
.blogpost元素应该监听此事件并相应地采取行动.
关于模态:
this.$dispatch('update-post', this.title, this.author);
在博客上:
this.$on('update-post', function(title, author) {
this.title = title;
this.author = author
});
如果blogpost组件和modal组件不在同一个层次 struct 中,事情会变得更复杂,可能需要公共父元素作为代理.想象一下,modal
元素dispatching
将信息向上传输,#app
元素通过$on
捕捉信息,然后对blogpost
元素执行$broadcast
操作.
3) 使用vuex
之类的工具作为状态的中央存储库.我不知道你的应用程序有多大,但这将是最干净的方式:http://vuex.vuejs.org/en/index.html
祝你好运