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 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
jquery解析xml字符串简单示例
Apr 11 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
JQuery Mobile实现导航栏和页脚
Mar 09 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
Vue + ts实现轮播插件的示例
Nov 10 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
php5新改动之短标记启用方法
2008/09/11 PHP
php 代码优化之经典示例
2011/03/24 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PDO::exec讲解
2019/01/28 PHP
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python的几种主动结束程序方式
2019/11/22 Python
Python实现分数序列求和
2020/02/25 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python如何变换环境
2020/07/21 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
护士毕业实习感言
2014/03/05 职场文书
精彩的广告词
2014/03/19 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
个人先进事迹总结
2015/02/26 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
python基础之错误和异常处理
2021/10/24 Python
为Centos安装指定版本的Docker
2022/04/01 Servers