vue自定义事件 子组件把数据传出去

每个 Vue 实例都实现了事件接口(Events interface),即:

  • 使用 $on(eventName) 监听事件
  • 使用 $emit(eventName) 触发事件

1、使用v-on绑定自定义事件

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script type="text/javascript"  src="vue.js"></script>
 7 </head>
 8 <body>
 9 <div id="counter-event-example">
10     <p>{{ total }}</p>
11     <button-counter v-on:increment="incrementTotal"></button-counter>
12     <button-counter v-on:increment="incrementTotal"></button-counter>
13 </div>
14 </body>
15     <script>
16         Vue.component(‘button-counter‘, {
17             template: ‘<button v-on:click="increment">{{ counter }}</button>‘,
18             data: function () {
19                 return {
20                     counter: 0
21                 }
22             },
23             methods: {
24                 increment: function () {
25                     this.counter += 1
26                     this.$emit(‘increment‘)
27                 }
28             }
29         })
30         new Vue({
31             el: ‘#counter-event-example‘,
32             data: {
33                 total: 0
34             },
35             methods: {
36                 incrementTotal: function () {
37                     this.total += 1
38                 }
39             }
40         })
41     </script>
42 </html>

输出结果:

2、使用自定义事件的表单输入组件

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script tyep="text/javascript" src="vue.js"></script>
 7 </head>
 8 <body>
 9     <div id="app">
10         <p>{{price}}</p>
11     <currency-input v-model="price"></currency-input>
12     </div>
13 </body>
14 <script>
15     Vue.component(‘currency-input‘, {
16         template: ‘<span>$ <input ref="input" v-bind:value="value" v-on:input="updateValue($event.target.value)" ></span>  ‘,
17         props: [‘value‘],
18         methods: {
19             // 不是直接更新值,而是使用此方法来对输入值进行格式化和位数限制
20             updateValue: function (value) {
21                 var formattedValue = value
22                     // 删除两侧的空格符
23                         .trim()
24                     // 保留 2 小数位
25                         .slice(0, value.indexOf(‘.‘) + 3)
26                 // 如果值不统一,手动覆盖以保持一致
27                 if (formattedValue !== value) {
28                     this.$refs.input.value = formattedValue
29                 }
30                 // 通过 input 事件发出数值
31                 this.$emit(‘input‘, Number(formattedValue))
32             }
33         }
34     })
35
36     var price
37     new Vue({
38         el:‘#app‘,
39         data:{
40             price:‘1‘
41         }
42
43     })
44 </script>
45 </html>

输出结果:

时间: 2024-08-02 23:07:11

vue自定义事件 子组件把数据传出去的相关文章

vue自定义事件将组件内的数据传输到实例中去使用

vue自定义事件将组件内的数据传输到实例中去使用 <body> <div id="app"> <h1 style="color:deeppink">{{ outer_title }}</h1> //③给实例绑定一个方法 <hello :reader="new_msg"  v-on:chang_event="chang_tit"></hello> </

Vue自定义事件

父组件使用props传递数据给子组件,子组件怎么跟父组件通信呢?这时,Vue的自定义事件就派上用场了.本文将详细介绍Vue自定义事件: 使用 v-on(eventName) 监听事件 使用 $emit(eventName) 触发事件 我们在myapp/src/components下新建一个组件Emit.vue,同时我们得在主组件APP.vue中引入该组件,以及注册该组件 然后我们在Emit.vue文件中去些一个自定义事件的例子 当我们点击按钮就能获取到组件内部的事件和参数 原文地址:https:

vue 实现,子组件向父组件 传递数据

首先理清组件之间的关系 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A 在它的模板中使用了组件 B,那么组件 A 就是父组件,组件 B 就是子组件. 先写子组件: 绑定一个单击事件 <el-button type="primary" icon="el-icon-search" @click="search" style="background: #5b6270;

Vue 第八章 子组件向父组件传值

1.子组件向父组件传值步骤 1.父组件定义一个方法 methods:{ show(data){ this.fumsg = data; console.log("父组件数据"+data) } } 2.子组件通过事件绑定调用父组件方法 <!-- 父组件向子组件传递方法,使用事件绑定机制 v-on --> <com2 v-on:func="show"></com2> <h1>h还没有值:{{fumsg}}</h1>

vue通俗易懂的子组件向父组件传值

不多BB直接上图: 如上图:为子组件绑定点击事件 如上图:send方法触发父组件绑定的事件 如上图:为父组件绑定触发事件@myEvent="aa" aa方法接受子组件传过来的值

vue中修改子组件样式

一.全局修改 1.在App.vue中设置,引入公共样式及个别页面的特殊样式common.css: 例如:<link rel="stylesheet" type="text/css" href="static/assets/css/common.css"> 下边的写法没用过参考链接中给的 <a href="http://home.cnblogs.com/u/134870/" target="_blan

Vue 自定义全局message组件

Message.vue <template> <transition name="fade"> <div class="message" :class="type" v-if="visible"> <i class="icon-type iconfont" :class="'icon-'+type"></i> <div c

vue 自定义步骤条组件(css)

话不多说直接上组件代码.. <template> <div> <ul class="steps"> <li v-for="(item,index) in SetData" :key="item+index" :class="{'active':Steps===index}" >{{item+Steps}}</li> </ul> </div> &

小结vue的视图是如何将数据传递给model

shiroFilter里面设置的loginUrl一类的我暂时都没填.filterChainDefinitions在我看来是重点,可以实现配置的指定url的权限管理./admin/**=roles[admin]是指/admin/**路径需要admin权限. 在SQL Server实例中,资源隔离的基本单位是Resource Pool,正如其名,该对象是资源池,在创建Resource Pool时,指定该Pool拥有的CPU和Memory资源的数量范围.在SQL Server 2012版本中,最多可以