Vue $emit
案例演示
需求:点击子组件触发一个事件改变父组件的字体大小。
<div id="app">
<p :style="{fontSize: fontSize + 'px'}">父组件的字体</p>
<!-- 子组件模板中定义了一个enlarge-text事件,v-on监听该事件 -->
<child v-on:enlarge-text="change"></child>
<!-- v-on可以写成@ -->
<child @enlarge-text="change"></child>
</div>
<script>
// 注册子组件
Vue.component("child", {
data: function () {
return {};
},
template: `
<div class="child">
<button v-on:click="$emit('enlarge-text')">放大父组件字体</button>
<span>子组件的字体</span>
</div>
`,
});
// 父组件
let vm = new Vue({
el: "#app",
data: function () {
return {
fontSize: 15,
};
},
methods: {
change() {
this.fontSize++;
},
},
});
</script>
效果演示:

emit的意思是发出、发射。就是我在子组件写的v-on:click="$emit('enlarge-text')",当我点击按钮之后,$emit会把这个名为enlarge-text的方法发射到父组件层面,然后父组件监听child标签的enlarge-text,也就是<child v-on:enlarge-text="change"></child>,然后实现内部的逻辑。
$emit的第二个参数
使用$emit的第二个参数来决定父组件字体增加的px值为多少:
<div id="app">
<p :style="{fontSize: + fontSize + 'px'}">父组件的字体</p>
<!-- 子组件 -->
<child v-on:enlarge-text="change($event)"></child>
<child v-on:enlarge-text="change(1)"></child>
</div>
改变子组件template部分:
Vue.component("child", {
data: function () {
return {};
},
template: `
<div class="child">
<button v-on:click="$emit('enlarge-text', 0.5)">放大父组件字体</button>
<span>子组件的字体</span>
</div>
`,
});
效果演示:

第一个组件增加父组件字体大小为0.5px,第二个是自加1px。
Vue $emit的更多相关文章
- 自用的基于Emit的C#下DataTable转实体类方法
之前一直在做WebForm的开发,数据绑定时直接DataTable绑定Gridview很方便,但是最近开始往MVC转,数据列表的传递和页面展示基本上是以List为主,像下面这样,遍历实体类的各个字段去 ...
- angularjs $emit $on $broadcast 父子 兄弟之间传值
父子之间 <div ng-controller="ParentCtrl"> <div ng-controller="ChildCtrl"> ...
- angularjs $broadcast $emit $on 事件触发controller间的值传递
如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你 ...
- 基础才是重中之重~Emit动态构建方法(参数和返回值)
回到目录 对于Emit我们知道它的可以动态构建程序集,类型,方法,属性等,或者说只要手动使用C#创建的东西使用Emit也都可以动态创建它们,Emit由于它的特别之处,所以在很多领域得到了广泛的应用,像 ...
- 再谈使用Emit把Datatable转换为对象集合(List<T>)
一.前因和存在的问题 前面我写了一篇<使用Emit把Datatable转换为对象集合(List<T>)>的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里 ...
- DataTable转Entity(Emit版)
public static List<T> ToList<T>(DataTable dt) { List<T> list = n ...
- 使用Emit把Datatable转换为对象集合(List<T>)
Emit生成动态方法部分摘自网上,但是经过修改,加入了对委托的缓存以及类结构的调整,使之调用更简洁方便.大致的思路是:要实现转换datatable到某个指定对象的集合,本质是实现转换一个datarow ...
- QT 中 关键字讲解(emit,signal,slot)
Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法.作为一种通用的处理机制,信号与反应槽非常灵活,可以携 ...
- IoC原理-使用反射/Emit来实现一个最简单的IoC容器
从Unity到Spring.Net,到Ninject,几年来陆陆续续用过几个IoC框架.虽然会用,但也没有一直仔细的研究过IoC实现的过程.最近花了点时间,下了Ninject的源码,研究了一番,颇有收 ...
- vue
vue.js 插件 setting--> plugins 搜索vue,下载安装如果想要高亮显示*.vue文件,可以在File Types 选项里找到HTML,然后在下方手动添加*.vue,这样就 ...
随机推荐
- spec2006与spec2000的对比简要说明
ec2006使用说明 2014-10-10 五 性能测试 benchmark 一.工具介绍 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试 ...
- 1.1Ubuntu安装
在虚拟机中安装 Ubuntu 步骤 安装前的准备和基本安装 设置语言环境 安装常用软件 1. 安装前的准备和基本安装 1.1 安装前的准备 访问 http://cn.ubuntu.com/downlo ...
- HC-05底层驱动
INT8U BT_INIT(const char * pNAME, INT32U BAUD, INT8U ROLE, INT32U PSWD) { INT8U OS_ERR = OS_ERR_NONE ...
- HDFS的小文件问题
HDFS 中任何一个文件,目录或者数据块在 NameNode 节点内存中均以一个对象形式表示(元数据),而这受到 NameNode 物理内存容量的限制.每个元数据对象约占 150 byte,所以如果有 ...
- 数据流分析软件SQLFlow的工作原理
SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动分析SQL里的数据对象,包括database.schema.table.view.column.pro ...
- Jenkins代码自动部署相关文档
环境 centos 7.0+ Java JDK 1.8+ jenkins 2.220 maven 3.0+ git 1.8+ 注意事项 一. linux 安装 JDK (jdk-8u201-linux ...
- MegEngine亚线性显存优化
MegEngine亚线性显存优化 MegEngine经过工程扩展和优化,发展出一套行之有效的加强版亚线性显存优化技术,既可在计算存储资源受限的条件下,轻松训练更深的模型,又可使用更大batch siz ...
- java容器学习笔记
容器 容器的组成 容器有两个接口Map和Collection. collection接口有List类和set类. List类可以分为:Vector.LinkedList.ArrayList.CopyO ...
- 简单理解数据库连接池(JDBC)
为什么要使用连接池? 在我们写代码的时候,写了很多类,假如这些类都和数据库打交道.这样的话每个类都要去获取数据库连接,操作完了之后就把连接释放了. 要知道,获取数据库连接的操作其实是向操作系统底层去获 ...
- 「题解」POI2005 AKC-Special Forces Manoeuvres
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷 P3428.官网. 题意简述 给定 \(n\) 个圆 \((x_i,y_i,r_i)\),每个圆对应一个点集 \(S ...