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 18 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
May 28 Javascript
JavaScript实现把数字转换成中文
Jun 29 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
vue写一个组件
Apr 09 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
Vue.js组件使用props传递数据的方法
Oct 19 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
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安装全攻略:APACHE
2006/10/09 PHP
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
教大家制作简单的php日历
2015/11/17 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php socket通信简单实现
2016/11/18 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
js实现页面转发功能示例代码
2013/08/05 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
vant实现购物车功能
2020/06/29 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python iter()函数用法实例分析
2018/03/17 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
Python list运算操作代码实例解析
2020/01/20 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
关键字final的用法
2013/10/02 面试题
《夜晚的实验》教学反思
2014/02/19 职场文书
一般党员对照检查材料
2014/09/24 职场文书
学习作风建设心得体会
2014/10/22 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2014年销售员工作总结
2014/12/01 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js