vuejs父子組件之間數據交互詳解
更新時間:2017年08月09日 08:33:01 作者:CooMark
這篇文章主要為大家詳細介紹了vuejs父子組件之間的數據交互,具有一定的參考價值,感興趣的小伙伴們可以參考一下
父子組件之間的數據交互遵循:
props down - 子組件通過props接受父組件的數據
events up - 父組件監(jiān)聽子組件$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
}
}
父組件監(jiān)聽事件
復制代碼 代碼如下:
<comment v-show="issue.show_comments" :issue="issue" :index="index" @removeComment="removeComment" @saveComment="saveComment"></comment>
父組件的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替換
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vue3.2+ts實現在方法中可調用的擬態(tài)框彈窗(類el-MessageBox)
這篇文章主要介紹了vue3.2+ts實現在方法中可調用的擬態(tài)框彈窗(類el-MessageBox),這個需求最主要的是要通過方法去調用,為了像el-messagebox使用那樣方便,需要的朋友可以參考下2022-12-12
vue 3 中watch 和watchEffect 的新用法
本篇文章主要通過 Options API 和 Composition API 對比 watch 的使用方法,讓大家快速掌握 vue3 中 watch 新用法,需要的朋友可以參考一下哦,希望對大家有所幫助2021-11-11
在IDEA?2024創(chuàng)建Vue項目的完整實例代碼
Vue.js是一個構建用戶界面的漸進式框架,而IntelliJ IDEA是一款功能強大的Java集成開發(fā)環(huán)境(IDE),但它也支持多種前端技術,包括Vue.js,這篇文章主要介紹了在IDEA 2024創(chuàng)建Vue項目的相關資料,需要的朋友可以參考下2026-02-02

