vue 组件 子向父亲通信用自定义方法用事件监听

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of page</title>
</head>
<body>

<div id="example">
<input v-model="parentsg">
<br>
<child v-bind:parentsg="parentsg"></child>
<!-- 直接绑定根数据text ,但是必须指明根数据的路径shou.text-->
<todo-item v-bind:todo="todo"></todo-item>
</div>
<div id="counter-event-example">
<p>{{childtofather}}</p>
<p>{{ total }}</p>
<button-counter v-on:increment="incrementTotal"></button-counter>
<button-counter v-on:increment="incrementTotal"></button-counter>
</div>

</body>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
<script >
// 注册
Vue.component(‘child‘, {
props: [‘parentsg‘],
template: ‘<span>{{ parentsg}}</span>‘
})
Vue.component(‘todo-item‘, {
props: [‘todo‘],
template: ‘<p>{{todo.isComplete}}</p>‘
})

// 创建根实例
new Vue({
el: ‘#example‘,
data:{

parentsg:‘‘,
todo: {
text: ‘Learn Vue‘,
isComplete: false
},
shou: {
text: ‘shi wo ma‘,
isComplete: false
}

}

})

Vue.component(‘button-counter‘, {
template: ‘<button v-on:click="incrementCounter">{{ counter }}</button>‘,
data: function () {
return {
counter: 0
}
},

// 绑定了事件click————>increment

// 然后 this.counter += 1; this.$emit(‘increment1‘,this.counter);

// 这边就是触发事件 increment1,参考文献里面有点乱,这边是不是清晰多了

// 然后 <button-counter v-on:increment1="incrementTotal"></button-counter>

// v-on相当于监听吧,就触发 incrementTotal

// 传给父组件的参数 输出// this.counter

// 有没有很清晰,若有理解不对的地方,请指正
methods: {
incrementCounter: function () {
this.counter += 1
this.$emit(‘increment‘,this.counter)
}
},
})

new Vue({
el: ‘#counter-event-example‘,
data: {
total: 0,
childtofather:‘‘
},
methods: {
incrementTotal: function (e) {

this.total += 1;
//输出 this.counter
console.log(e)
//
this.childtofather=e +"子传父传来的数据"
}
}
})
</script>
</html>

原文地址:https://www.cnblogs.com/dianzan/p/8504410.html

时间: 2024-07-31 06:10:40

vue 组件 子向父亲通信用自定义方法用事件监听的相关文章

vue中的事件监听之——v-on vs .$on

跟着视频中老师的教学视频学vue的时候,看很多时候都用@(v-on)来监听子级emit的自定义事件,但在bus总线那块,又用.$on来监听bus自身emit的事件,v-on之间似乎相似但又不同,今天对照vue官网api学习并coding了相关代码,两者的用法与比较描述如下. v-on vm.$on 可监听普通dom的原生事件: 可监听子组件emit的自定义事件: 监听当前实例的自定义事件 vue官网相关说明截图: 由此可见,想监听vue实例自身自定义事件,只能用.$on并且这是vue实例的方法,

关于vue事件监听的一个问题

由于新工作需要用vue,所以最近接触最多的也是vue,因为之前一直在用react,所以对于vue上手还是很快的.我也尽量找一些他们两个的异同点,除了多了一些辅助用的方法以外,最大的不同应该是对于组件间的通信,不仅有props,还有一种事件监听,也是可以通过组件间传递的.我们知道vue的事件监听是一个很方便的设计,代码上一目了然,而且给我们增加了多种修饰符(虽然我都没怎么用过)来简化你的代码.可归根结底,所谓事件监听,通常都是一个需要预处理的过程,即在你初始化你的实例时就需要去为其注册监听.这当然

vue中的事件监听机制

事件监听 基础用法 监听dom事件使用v-on指令: v-on:事件类型="一个函数" .这个事件类型可以自定义. v-on 指令绑定事件后,就会监听相应的事件,并在触发时运行一些 JavaScript 代码. <div id="box1"> <button v-on:click="counter += 1">点我</button> <p>已点击 {{ counter }} 次</p>

[技术博客]react native事件监听、与原生通信——实现对通知消息的响应

在react native中会涉及到很多页面之间的参数传递问题.静态的参数传递通常利用组件的Props属性,在初始化组件时即可从父组件中将参数传递到子组件中.对于非父子关系的组件来说,无法直接传递参数,此时可能会用到react-navigation来传递:此外,若要将异步函数.不可预料的事件执行等得到的参数用于页面刷新时,前述的方法都不太奏效. DeviceEventEmitter react-native中采用了DeviceEventEmitter来实现对事件的监听,实现非父子关系的页面之间的

extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html

extjs对组件添加监听的三种方式 在定义组件的配置时设置 如代码中所示: Java代码 xtype : 'textarea', name : 'dataSetField', labelSeparator:'', fieldLabel:'', hideLabel: true, allowBlank: true, height: mainPanelHeight*0.8, anchor:'99%', listeners:{'blur':function(){ alert(1); }} 对组件变量通过

vue组件子与父组件数据之间的传递

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>vue 子父组件间的数据传递</title> <script src='vue.js'></script></head><body> <script> // 全局组件 // Vue.component(

vue组件-子组件向父组件传递数据-自定义事件

自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件!

Vue.js 2使用中的难点举例--子组件,slot, 动态组件,事件监听

一例打尽..:) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="demo.css" /> </head> <body> <div id="app"> <u

vue组件父子之间相互通信案例