文章目录
引申
vue中的数据传递一般是单向数据流,即父组件数据通过props传递给子组件。但是子组件可以通过自定义事件间接修改父组件中的数据,这种方式采用了发布订阅模式。
举个例子:
<div id="app">
父组件中的的num是{
{ num }}<br/>
<!-- 此处通过自定义事件来传递改变父组件中数据的方法 -->
<son @addnum="add"></son>
</div>
<template id="son">
<button @click="changeNum">改变父组件中的num</button>
</template>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let son = {
template: '#son',
methods: {
changeNum() {
// 子组件通过$emit方式触发传递给子组件的自定义事件来改变父组件中的数据
this.$emit('addnum', 1)
},
},
};
let vm = new Vue({
el: '#app',
data: {