NO.08--VUE之自定义组件添加原生事件
前几篇给大家分享了我的业余的“薅羊毛”的经历,回归正题,讲回vue吧:
许多vue新手在工作开发中会遇到一个问题,直接使用 button
添加原生事件是没有问题的,但是使用自定义组件添加原生事件时,就会发现添加不上。比如我写了两个 button
,一个点击让 div
变红,一个点击让 div
变蓝。
App.vue文件
<template>
<div id="app">
<button @click="changeRed">变红</button>
<!-- 使用 Btn 组件 并添加原生事件 -->
<Btn @click="changeBlue"></Btn>
<div :class="box"></div>
</div>
</template>
<script>
// 引入 Btn 这个组件
import Btn from './assets/components/Btn.vue'
export default {
name: 'app',
data () {
return {
box: 'yellow'
}
},
methods: {
changeRed(){
this.box = 'red'
},
changeBlue(){
this.box = 'blue'
}
},
// 组件 注册
components: {
Btn
}
}
</script>
<style>
.yellow{
width: 200px;
height: 200px;
background: #ff0;
}
.red{
width: 200px;
height: 200px;
background: #f00;
}
.blue{
width: 200px;
height: 200px;
background: #00f;
}
</style>
Btn.vue 文件
<template>
<div class="btn">
<button>变蓝</button>
</div>
</template>

会发现 Btn
的绑定事件无效。其实 vue
官方是有提供对应的方法的, 给组件绑定原生事件,就是在自定义组件 Btn
的原生事件后面加个 .native
后缀就好了。
App.vue文件
<template>
<div id="app">
<button @click="changeRed">变红</button>
<!-- 使用 Btn 组件 并添加事件 -->
<Btn @click.native="changeBlue"></Btn>
<div :class="box"></div>
</div>
</template>
效果:

NO.08--VUE之自定义组件添加原生事件的更多相关文章
- vue自定义组件添加原生事件监听
注:全局或局部注册的组件称为子组件,其中声明的组件名称(如下demo中的child)是一个自定义组件 Demo1-直接给父组件添加事件监听 <!DOCTYPE html> <html ...
- vue怎么给自定义组件绑定原生事件
下面主要以4个示例Demo演示(示例代码JS引用的Vue CDN),建议小伙伴直接复制示例代码运行查看, 赶时间的小伙伴可直接往下拉,看示例demo4 注:全局或局部注册的组件称为子组件,其中声明的 ...
- form-create教程:给内置组件和自定义组件添加事件
本文将介绍form-create如何给内置组件和自定义组件添加事件 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue ...
- 四、vue基础--自定义组件
1.语法:Vue.component("组件名字",{data,template}),代码如下: a. data: 必须是一个函数,有一个返回值.和vue里面的使用方法一样 b. ...
- vue中自定义组件(插件)
vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: ...
- 【VUE】自定义组件
[VUE]自定义组件 转载: ============================================ ======================================== ...
- vuejs给组件绑定原生事件
给组件绑定事件,该事件是自定义的事件 <div id='root'> <child @click='handleClick'></child> </div&g ...
- 微信小程序页面调用自定义组件内的事件
微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...
- vue组件绑定原生事件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- Spring @Value 默认值
@Value(value = "${etl.maxthreadcount:3}") private long MaxThreadCount;
- [转载]WebDriver工作原理
转载自:https://www.cnblogs.com/testermark/p/3546287.html WebDriver的工作原理: 在我们new一个WebDriver的过程中,Seleniu ...
- POJ 2352 stars (树状数组入门经典!!!)
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 54352 Accepted: 23386 Descripti ...
- QT 简单 TCP 通信,发送数据到服务器
1.首先 添加头文件 #include <QtNetwork/QTcpSocket> 并且 在 xxx.pro(xxx指工程的名称) 中QT += core gui下面,添加 下面两句句话 ...
- 解决apache启动错误:Could not reliably determine the server's fully qualified domain name
启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name [root@serv ...
- HTML基础代码
<!--注释内容,在浏览时不会显示--><!DOCTYPE HTML> <!--声明文档类型--><html> <!--头部内容:--> & ...
- Web—10-前端性能优化
前端性能优化 从用户访问资源到资源完整的展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度.网站的性能直接会影响到用户的数量,所有前端性能优化很重要 ...
- Win10 64位+VS2015+Opencv3.3.0安装配置
Win10 64位+VS2015+Opencv3.3.0安装配置 1.我们首先下载VS2015.OpenCV3.3.0. 1.1 VS2015下载 在官网https://visualstudio.mi ...
- scrapy管道MySQL简记
import pymysqlfrom scrapy.exceptions import DropItemimport time class ErshouchePipeline(object): def ...
- mac 装5.6版本mysql 设置密码
最的mysql在装的时候就可以设置 ,但是低版本的好像不行,需要在装了以后才能设置. mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@ ...