vue学习笔记之给组件绑定原生事件操作示例


Posted in Javascript onFebruary 27, 2020

本文实例讲述了vue学习笔记之给组件绑定原生事件操作。分享给大家供大家参考,具体如下:

当在父组件中定义一个点击事件,并且在父组件的methods中定义了这个点击事件时,在页面上点击并不会有什么反应。那么该怎么办呢?

我们可以在子组件的template中的dom上定义一个点击事件(原生事件),并且在子组件的methods中定义该点击事件,然而点击页面时也只会alert(child click )

这是为什么呢?父组件的点击事件被vue当成自定义事件,点击后没有检测到,这时需要子组件向父组件触发点击'自定义'事件,即 this.$emit('change') 。then,完成。先响应了child click,然后响应了click。

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="UTF-8">
  <title>组件参数的校验</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
  <child @change="handleClick"></child>  <!--此处父组件,相当于自定义事件-->
</div>
</body>
</html>
<script>
  Vue.component('Child', {
    template: '<div @click="handleChildClick">child</div>',   /* 原生事件 */
    methods:{
      handleChildClick:function () {
        alert("child click")
        this.$emit('change') // 向父组件传递自定义事件
      }
    }
  })
  var vm = new Vue({
    el: '#app',
    methods:{
      handleClick:function () {
        alert("click");
      }
    }
  })
</script>

但是这样好麻烦哦!!怎么办呢?

我们可以直接在父组件定义的@click后面加上native,告诉vue我定义的事件就是原生事件!!就一切?了

like this:

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="UTF-8">
  <title>组件参数的校验</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
  <child @click.native="handleClick"></child>  <!--此处声明,原生事件-->
</div>
</body>
</html>
<script>
  Vue.component('Child', {
    template: '<div>child</div>'
  })
  var vm = new Vue({
    el: '#app',
    methods:{
      handleClick:function () {
        alert("click");
      }
    }
  })
</script>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
javascript 时间比较实现代码
Oct 28 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
判断字符串的长度(优化版)中文占两个字符
Oct 30 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
jquery实现拖动效果
Aug 10 Javascript
JS前端加密算法示例
Dec 22 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
vue-router懒加载速度缓慢问题及解决方法
Nov 25 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 #Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 #Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 #Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
Feb 27 #Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 #Javascript
BootStrap前端框架使用方法详解
Feb 26 #Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 #Javascript
You might like
PHP伪静态页面函数附使用方法
2008/06/20 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
Python执行时间的计算方法小结
2017/03/17 Python
详解python Todo清单实战
2018/11/01 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
博士研究生自我鉴定范文
2013/12/04 职场文书
全陪导游欢迎词
2014/01/17 职场文书
50岁生日感言
2014/01/23 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
社区春季防火方案
2014/06/02 职场文书
绵山导游词
2015/02/05 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
如何Python使用re模块实现okenizer
2022/04/30 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android