vue组件添加事件@click.native操作
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要介绍了vue组件添加事件@click.native操作,具有很好的参考价值,希望对大家有所帮助。一起跟随长沙网络推广过来看看吧
1,给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件
2,等同于在子组件中 子组件内部处理click事件然后向外发送click事件$emit("click".fn)
<Item @click.native = "shijian()"></Item>
补充知识vue——组件间(兄弟组件间)事件派发与接收
法一
main.js
在初始化vue之前,给 data 添加一个名为 event 的空vue对象
new Vue({ render: h => h(App), router, store, data: { event: new Vue() } }).$mount('#app')
组件一
methods: { addCart (e) { let pos = { x: parseInt(e.target.getBoundingClientRect().x + 4), y: parseInt(e.target.getBoundingClientRect().y + 4) } this.$root.event.$emit('ballPosition', pos) } }
组件二
created () { this.$root.event.$on('ballPosition', (target) => { this._initBall(target) }) }, methods: { _initBall (target) { this.ball = true this.ballMassage = target } }
完整案例
抛物小球动画
created () { this.$root.event.$on('ballPosition', (target) => { this._initBall(target) }) }, methods: { _initBall (el) { this.ball.show = true this.ball.el = el }, beforeEnter (el) { let pos = this.ball.el.target.getBoundingClientRect() el.style. = `${pos.y}px` el.style.left = `${pos.x}px` }, enter (el, done) { // 触发动画重绘 el.offsetHeight let [x, y] = [parseInt(this.$refs.cart.getBoundingClientRect().x + 4), parseInt(this.$refs.cart.getBoundingClientRect().y + 8)] el.style. = `${y}px` el.style.left = `${x}px` el.style.transition = `left .1s linear, .1s cubic-bezier(.63,.02,.96,.56)` done() }, afterEnter () { this.ball.show = false } },
法二
中央通信 let eventVue = new Vue()
A methods:{function(){eventVue.$emit('自定义事件','数据')}}
B created(){eventVue.$on('A 发送过来的事件名','函数')}
中央通信
let eventVue = new Vue()
兄弟组件 A 如下
<template> <div class="ponents-a"> <button @click="abtn">A按钮</button> </div> </template> <script> import eventVue from '../../js/event.js' export default { name: 'app', data () { return { ‘msg':"我是组件A" } }, methods:{ abtn:function(){ eventVue.$emit("myFun",this.msg) //$emit这个方法会触发一个事件 } } } </script>
兄弟组件 B 如下
<template> <div class="ponents-a"> <div>{{btext}}</div> </div> </template> <script> import eventVue from '../../js/event.js' export default { name: 'app', data () { return { 'btext':"我是B组件内容" } }, created:function(){ this.bbtn(); }, methods:{ bbtn:function(){ eventVue.$on("myFun",(message)=>{ //这里最好用箭头函数,不然this指向有问题 this.btext = message }) } } } </script>
以上这篇vue组件添加事件@click.native操作就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程