千家信息网

vuejs中如何实现父子组件间数据交互

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,今天小编给大家分享一下vuejs中如何实现父子组件间数据交互的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面
千家信息网最后更新 2025年02月06日vuejs中如何实现父子组件间数据交互

今天小编给大家分享一下vuejs中如何实现父子组件间数据交互的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

父子组件之间的数据交互遵循:

props down - 子组件通过props接受父组件的数据
events up - 父组件监听子组件$emit的事件来操作数据

示例

子组件的点击事件函数中$emit自定义事件

export default { name: 'comment', props: ['issue','index'], data () { return {  comment: '', } }, components: {}, methods: { removeComment: function(index,cindex) {  this.$emit('removeComment', {index:index, cindex:cindex}); }, saveComment: function(index) {  this.$emit('saveComment', {index: index, comment: this.comment});  this.comment=""; } }, //hook  created: function () { //get init data }}

父组件监听事件

复制代码 代码如下:

父组件的methods中定义了事件处理程序

 removeComment: function(data) {  var index = data.index, cindex = data.cindex;  var issue = this.issue_list[index];  var comment = issue.comments[cindex];  axios.get('comment/delete/cid/'+comment.cid)  .then(function (resp) {  issue.comments.splice(cindex,1);  }); }, saveComment: function(data) {  var index = data.index;  var comment = data.comment;  var that = this;  var issue =that.issue_list[index];  var data = {  iid: issue.issue_id,  content: comment  };  axios.post('comment/save/',data)  .then(function (resp) {  issue.comments=issue.comments||[];  issue.comments.push({   cid: resp.data,   content: comment  });  });    //clear comment input  this.comment=""; } },

注意参数的传递是一个对象

其实还有更多的场景需要组件间通信

官方推荐的通信方式

  • 首选使用Vuex

  • 使用事件总线:eventBus,允许组件自由交流

  • 具体可见:$dispatch 和 $broadcast替换

以上就是"vuejs中如何实现父子组件间数据交互"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0