1. 程式人生 > >vue.js中關於$emit(eventName, optionalPayload) 觸發事件的應用,子元件向父元件傳遞資料(字串,陣列,或者物件等)

vue.js中關於$emit(eventName, optionalPayload) 觸發事件的應用,子元件向父元件傳遞資料(字串,陣列,或者物件等)

一、父元件及程式碼解釋:

<template>
  <div>
    <p v-for="msg in messages">{{msg}}</p>               <!--輸出子元件傳給父元件的資料-->
<my-button4 @onclick="increment"></my-button4>       <!--自定義方法onclick監聽子元件觸發情況-->
</div>
</template>
<script>
import myButton4 from 
'./components/myButton4.vue' export default{ data(){ return{ messages:[] /*定義集合messages接收從子元件傳來的資料,因為事件可以不止觸發一次,所以用集合*/ } }, methods:{ increment:function(payload){ /*payload表示從子元件傳遞回來的資料*/ this.messages.push(payload.message1) /*將每次從子元件傳過來的資料payload放到集合messages中*/
/*由於子元件傳過來的是一個物件,所以用payload.message1*/ } }, components:{ myButton4 /*注意:子元件的例項一定要放在方法和資料之後,要不然很容易節後不到資料*/ } } </script>

二、子元件級程式碼解釋:

<template>
  <div>
    <input type="text" v-model="message">              
<!--定義一個文字輸入框,用 v-model進行雙向繫結--> <button @click="handleSendMessage">Send</button> <!--定義一個按鈕,建立點選事件handleSendMessage--> </div> </template> <script> export default{ data(){ return{ message:"the Test" } }, methods:{ handleSendMessage:function(){ /*如果點選事件發生,則觸發父元件的監聽事件onclick,也就是increment方法*/ this.$emit("onclick",{message1:this.message}) /*傳值,將一個物件傳回去給increment方法,也可以傳陣列*/ } } } </script>

三、執行截圖:

1、開始截圖:


2、第一次點選send截圖:


3、第二次點選send截圖:


相關推薦

Vue.js元件元件通訊

一、場景描述: 曾經有個電商專案,其中有個“老帶新”模組,而且該模組新增的入口很多,但是新增後展示效果還不一樣,當時就考慮將新增的元件單獨拿出來,其實就是一個子元件向父組同步資料的過程。 當然,背景不重要了,關鍵是看實現的方式。 二、場景展示效果 (PS:展示效果請忽略美感)

vue元件元件傳值----$emit

子元件向父元件傳值可以使用  $emit()   我的理解是子元件通過$emit方法把自己的第一個引數eventName傳遞給父級,父級把eventName當成一個事件,觸發這個事件接收子級傳給自己的資料或執行操作 $emit ( eventName,args..) 引

元件元件傳值(事件發生在元件)和事件

專案中一個功能 可能在很多地方都有出現 那麼此時我們肯定是要抽成一個元件, 如果此功能中需要傳值呢 我覺得子元件向父元件傳值, 父元件呼叫子元件裡面的事件, 父元件向子元件傳值云云…. 前兩者真的是需要仔細點琢磨 專案有個需求: 需要對編號:中的值進行純數字驗證並且進行搜尋,

Vue筆記——元件元件傳遞資料

Vue專案中經常使用到元件之間的數值傳遞,實現的方法很多,但是原理基本上大同小異。 子元件向父元件出傳遞資料,使用自定義事件的方式。 父元件向子元件傳遞資料,使用props屬性的方式。 一、在子元件中自定義事件 我們可以從子元件中想父元件中傳遞多個數據,在子

vue 元件元件傳遞資訊

1.要引入vue,js <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">

vue學習元件元件傳參

子元件向父元件傳參主要依靠 v-on 和  $.emit 這個是vue官網上給的方法呼叫,我們看看頁面上怎麼使用。 子元件 main_Header.vue <template> <div> <div>{{count}}</

vue-元件元件傳值

子元件註冊觸發事件,父元件註冊 觸發子元件事件後的方法寫在method裡面 父元件這麼寫 <component-a v-on:child-say="listenToMyBoy"><

JS——視窗視窗傳值radio選中的列值

父視窗 <input type="text" class="font3" name="doctor_code" id="doctor_code"> <input type="text" class="font3" name="doctor_desc" id="doctor_d

vue中子元件元件傳遞引數(通訊)

vue構建專案時,在元件內部引用了子元件,子元件的資料更新或者狀態更新,需要向父級元件傳遞引數,在傳遞上如下進行定義:子元件中,在需要向父級元件傳遞引數的方法中,使用emit傳遞引數this.$emit('loadsuc', true);父元件中,v-on:loadsuc 來

Vue2 框架整理:元件元件傳遞資料$emit() 或 v-on

當子元件向父元件傳遞資料的時候,需要的是自定義事件: $on & $emit 子元件用$emit()觸發事件, 父元件用$on() 監聽子元件的事件 或者父元件也可以直接在子元件的自定義標籤上使用v-on來監聽子元件觸發的自定義事件: $e

js 按鈕連擊 減少觸發事件次數

pan body div NPU AS btn class clas 觸發 <body> <input type="button" onClick="testbtn()" value="測試按鈕"> <script> var b1

Vue.js-03:第三章 - 事件修飾符的使用

 一、前言   熟悉了 Vue 的指令系統後,在實際開發中,不可避免的會使用到對於事件的操作,如何處理 DOM 事件流,成為我們必須要掌握的技能。不同於傳統的前端開發,在 Vue 中給我們提供了事件修飾符這一利器,使我們可以便捷的處理 DOM 事件,本章,一起來學習如何使用事件修飾符來實現對於 D

JS:點選切換radio觸發事件

html: <table id="rblEndTime" border="0"> <tbody> <tr id="endtime_tr"> <td> <input id="rblEndTime_0" type

Vue.js學習筆記】4:事件修飾符,鍵盤事件,鍵值修飾符

事件修飾符 在Vue的官方文件中給出了引入v-on:的事件修飾符的理念是,不希望在方法中去處理DOM細節。 事件冒泡 事件在事件源上發生,處理事件的方法並未繫結在該事件源上,事件就要向外或者向內傳播(propagation),也稱事件冒泡。在JS裡,可以用事件物件的stopP

vue學習六 元素點選觸發事件(無v-for父子關係)

1.在學習vue專案中,需使用如下需求:點選按鈕後,遮罩層顯示出來。本來若有v-for父子關係的,可以使用index進行迴圈遍歷實現,而無關聯的元素,則需要繫結類class來實現。 2.對點選元素繫結方法 <img src="../../stati

js代碼點擊觸發事件

添加 ntb ali spl 調用 cti 方法 兩種方法 頁面 js觸發按鈕點擊事件 function load(){ //下面兩種方法效果是一樣的 document.getElementById("target").onclick(); d

js拼裝html無法觸發事件

$("body").delegate('.refund','click',function(){//主要是這裡 var truthBeTold = confirm("退款稽核,稽

vue.js props屬性傳值與事件傳值

 利用 props 傳值時,當 傳遞的種類不同時,效果也是不同的 當傳的是 引用 型別時,不管是在 父元件 中改變了這個值,還是在 子元件 中改變了這個值,父元件和子元件中的值,互相影響 而傳的是 傳值 型別時 ,不管是在 父元件 中改變了這個值,還是在 子元件 中改

Vue.js前端開發快速入門與專業應用

blank 角度 前端 介紹 實際應用 運用 get 指令 http 本書主要介紹 Vue.js 的使用方法和在實際項目中的運用,它既可以在一個頁面中單獨使用,也可以將整站都構建成單頁面應用。為了便於理解,本書會從傳統的開發角度切入,先從數據渲染、事件綁定等方面介紹在 Vu