Vue $emit $event 传值(子to父)

事件名

始终使用 kebab-case 的事件名。

通过事件向父组件发送信息

子组件中EnFontsize.vue中$emit

 <button @click="$emit('enlarge-text')">Enlarge text</button>

父组件中

<template>
  <div id="app">
    <div :style="{ fontSize: postFontSize + 'em' }">
      <div v-for="post in posts" v-bind:key="post.id" v-bind:post="post">
        <span>{{post.id}}</span>
        <span>{{post.title}}</span>
        <EnFontsize v-on:enlarge-text="postFontSize += 0.1"></EnFontsize>
      </div>
    </div>
  </div>
</template>
<script>
import EnFontsize from "./components/EnFontsize";

export default {
  name: "App",
  data: function() {
    return {
      posts: [
        { id: 1, title: "the title is..." },
        { id: 2, title: "the title is..." }
      ],
      postFontSize: 1
    };
  },
  components: {
    EnFontsize
  }
};
</script>

使用事件抛出一个值

子组件中使用 $emit 的第二个参数来提供这个值:

 <button @click="$emit('enlarge-text', 0.1)">Enlarge text</button>

父组件中可以通过 $event 访问到被抛出的这个值:

 <EnFontsize v-on:enlarge-text="postFontSize += $event"></EnFontsize>

或者,如果这个事件处理函数是一个方法:

<!-- <EnFontsize v-on:enlarge-text="postFontSize+=$event"></EnFon>-->
    <EnFontsize v-on:enlarge-text="onEnlargeText"></EnFontsize>

那么这个值将会作为第一个参数传入这个方法:

methods: {
  onEnlargeText: function (enlargeAmount) {
    this.postFontSize += enlargeAmount
  }
}

注意:这里是自动接收这个值并传给函数作为第一个参数,虽然没有使用$event接收

原文地址:https://www.cnblogs.com/guangzan/p/10304560.html

时间: 2024-11-07 05:10:07

Vue $emit $event 传值(子to父)的相关文章

FineUI小技巧(5)向子窗口传值,向父窗口传值(另附24张专业版高清大图)

前言 FineUI中经常会用到启用IFrame的Window控件,这样有助于从物理上进行代码解耦和.IFrame的引入就会涉及传值问题,如何在父窗口和子窗口之间相互传值呢? 向子窗口传值 向子窗口传值只需要把要传递的参数放在页面URL中即可,一般有两种做法: 页面回发,在后台通过C#代码拼接需要的URL(推荐做法,方便!) 页面第一次加载时,即注册需要的URL(如果参数是页面上某输入框的值,则需要在URL中嵌入JavaScript代码) 来看一个例子,分别用上述两种方式实现: 页面的初始显示 点

父窗口window.showModalDialog传值 子窗口window.returnValue返回值

父窗口打开子窗口页面: var fatherWindow = document.all.dealReason;//想传的值 win = window.showModalDialog(strUrl, fatherWindow, "dialogWidth=800px;dialogHeight=600px;"); //strUrl是子窗口页面,fatherWindow是想传的值,win是子窗口返回的值document.all.dealReason.value = win; 子窗口: var

【vue组件之间互相传值:父传子,子传父】

今看到一篇很不错的vue组件传值文章,便于理解,遂做笔记- 一般页面的视图App.vue应为这样 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue2.Child.vue的中创建props,然后创建一个名为message的属性 3.在App.vue中注册Child组件,并在template中加入child标签,标签中添加message属性并赋值 4.保存修改的文件,查看浏览器 5.我们依然可以对message的值进行v-bind动态绑定 此

Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值

Vue常用的三种传值方式有: 父传子 子传父 非父子传值 引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递.父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息 1. 父组件向子组件进行传值 父组件: <template> <div> 父组件: <input type="text" v-model="name"> <!-- 引入子组件 --> <child :abc=

vue 实现子向父传值

父组件 <template> <div id="app"> <child @onChange='onChildValue'></child> <div v-if='index == 0'>这是index为零的值</div> <div v-else-if='index == 1'>这是index为壹的值</div> <div v-else='index == 2'>这是index为

深度剖析Vue中父给子、子给父、兄弟之间传值!

本片文章将为您详细讲解在Vue中,父给子传值.子给父传值以及兄弟之间传值方式! 父传子:父组件 // template里面 <aa :info="name"/> // script里面 import aa from './aa.vue' components:{ aa }, data(){ return{ name : '小明' } } 父传子:子组件 // template里面 {{info}} // script里面 export default { props :['

小程序的组件通讯三种方法==子向父传值

小程序的组件通讯三种方法 ============================ ================================ 子向父传值 第一步:小程序子向父传值在父组件定义方法 第二步:小程序子向父传值第二部在使用子组件的标签上在父的wxml文件中把方法传递给子组件 第三步:小程序子向父传值第三步在子组件的js文件中调用this·triggerEvent触发方法同时传递参数给父组件 第四步:第四步在第一步定义好的方法内部通过e·detail来接收子组件传递回来的参数 原

React传值(子传父,父传子)

1.子传父 子组件事件调用父组件事件,将State或其他值当成参数传过去,父组件调用该参数,达到传值的效果 2.父传子 利用props属性传值,this.props.data 原文地址:https://www.cnblogs.com/vancissell/p/12367179.html

浅谈VUE传值问题,父传子,子传父,兄弟传兄弟。。。

首先我们先定义3个页面,一个主页面,两个子页面 例:myForm 和 myTabel 是定义的两个子页面 第一步:在主页面引入 import myForm from "@/MyForm"; import myTabel from "@/MyTable"; 第二步:在 components 注册  (注册完必须进行第三步.不然会报错) components: {     myForm,     myTabel, } 第三步:插入 <myForm></

vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this.$emit("父组件上的方法名",a)     /-------a------/代表需要传递的参数        兄弟组件通讯   需要创建一个公共的vue 实例, new vue()    在main.js里 书写Vue.prototype .com=new vue()    通过pr