1. 程式人生 > >Vue.js父子元件通訊-自定義事件

Vue.js父子元件通訊-自定義事件

元件props用法:

props: {
	    // 基礎型別檢測 (`null` 意思是任何型別都可以)
	    propA: Number,
	    // 多種型別
	    propB: [String, Number],
	    // 必傳且是字串
	    propC: {
	      type: String,
	      required: true
	    },
	    // 數字,有預設值
	    propD: {
	      type: Number,
	      default: 100
	    },
	    // 陣列/物件的預設值應當由一個工廠函式返回
	    propE: {
	      type: Object,
	      default: function () {
	        return { message: 'hello' }
	      }
	    },
	    // 自定義驗證函式
	    propF: {
	      validator: function (value) {
	        return value > 10
	      }
	    }
	  }

自定義事件學習:

父元件通過屬性將資料傳遞給子元件

子元件通過$on監聽子元件事件,通過$emit來觸發父元件的事件。

子元件程式碼:

<template>
	<div id="child">
		<p>子元件顯示父元件輸入:{{message}}</p>
		<button v-on:click="childMethod">子元件按鈕 add</button>
	</div>
</template>

<script>
	export default {
		props:{
			message: {
				type: String,
				default: "hello child"
			}
		},
		data() {
			return {
				count:0
			}
		},
		methods:{
			childMethod:function() {
				this.count += 1
				// 當父元件事件觸發之後,子元件通知父元件觸發某一個事件。
				this.$emit("fatherEmit")
			}
		},
		components:{

		}
	}
</script>

<style>
</style>

父元件程式碼:

<template>
	<div id="father">
		<p>父元件的計數器{{fatherCount}}</p>
		父元件的輸入:<input v-model="message">
		<!--父元件通過屬性繫結給子元件傳值-->
		<child v-bind:message = "message" v-on:fatherEmit = "fatherAdd"></child>
	</div>
</template>

<script>
	import Child from "../comment/Child"
	export default{
		data() {
			return {
				fatherCount:0,
				message:"hello"
			}
		},
		methods:{
			fatherAdd:function() {
				this.fatherCount += 1;
			}
		},
		components:{
			Child:Child
		}
	}
</script>

<style>
</style>

相關推薦

Vue.js父子元件通訊-定義事件

元件props用法: props: { // 基礎型別檢測 (`null` 意思是任何型別都可以) propA: Number, // 多種型別 propB:

Vue.js 父子元件通訊的十種方式

概述 幾種通訊方式無外乎以下幾種: Prop(常用) $emit (元件封裝用的較多) .sync語法糖 (較少) $attrs 和 $listeners (元件封裝用的較多) provide 和 inject (高階元件/元件庫用的較多) 其他方式通訊 詳述

Vue.js(7)- 定義元件

增加loader   webpack只能識別.js結尾的檔案,這時就需要增加loader 執行npm i vue-loader vue-template-compiler -D 在webpack.config.js新增rules匹配規則: { test: /\.vue$/,

Vue課堂】Vue.js 父子元件之間通訊的十種方式

  這篇文章介紹了Vue.js 父子元件之間通訊的十種方式,不管是初學者還是已經在用 Vue 的開發者都會有所收穫。無可否認,現在無論大廠還是小廠都已經用上了 Vue.js 框架,簡單易上手不說,教程詳盡,社群活躍,第三方套件還多。真的是前端開發人員必備技能。而且在面試當中也往往會問到關於 Vue 方面的各種

Vue組件綁定定義事件

函數 methods click -c 這就是 += 自定義 his this Vue組件使用v-on綁定自定義事件:   可以分為3步理解:     1.在組件模板中按照正常事件機制綁定事件:       template: ‘<but

vue子組件的定義事件

一個 ora lan script pan () 事件 現在 tar 父子組件的信息傳遞無礙就是父組件給子組件傳值(props和$attrs)和父組件觸發子組件的事件($emit) 之前已經談過了父組件給子組件傳值了,現在來說說父組件觸發子組件的自定義事件吧~~ 實際上挺簡

vue.js父子元件

父子元件: 1. 父子元件間的作用域相互獨立。 2. 子元件只能在父元件的配置項裡建立。 3. 子元件只能在父元件的模板中進行呼叫。 <!DOCTYPE html> <html lang="zh"> <head> <meta charset

vue父子元件通訊

一. 父-子元件間通訊 let children={    template:`<div><h1>{{send}}</h1></div>`,  # 將傳過來的資訊send渲染出來  

echart.js控制元件畫圖定義tooltip

function makeSelfTooltip(_options){     _options = $.extend(_options, {         'tooltip': {       &

元件使用$emit觸發父元件定義事件

1.父元件可以呼叫子元件通過props匯出的資料。 2.子元件可以使用$emit觸發父元件的自定義事件。 $emit語法: vm. $emit(eventName,[…args]); 引數說明:第一個引數eventName,表示自定義事件名稱。 第二個引數[…args],表示要傳給父元件

VUE DOM載入後執行定義事件

最近想用vue做一個小東西,誰知道一開始就遇到了一個棘手的問題:首先我想在頁面載入前通過ajax請求頁面展示所需要的資訊,於是我在created鉤子函式裡面請求了我想要的資料created:function(){ var url="/inde

vue -- 非父子元件傳值,事件匯流排(eventbus)的使用方式

轉自:https://blog.csdn.net/wxl1555/article/details/84646832  一、 前言 先說一下什麼是事件匯流排,其實就是訂閱釋出者模式; 比如有一個bus物件,這個物件上有兩個方法,一個是on(監聽,也就是訂閱),一個是emit(觸發,也

vue父子元件通訊問題解決記錄

問題描述:最近在做登入部分時遇到一個場景,當點選 “使用者”按鈕時,首先渲染login元件,在使用者登入後直接跳轉到使用者資訊介面(user元件)。這裡遇到了需要將login元件通過非同步請求獲得的使用者資訊傳向 user元件,但是login和login元件不是父子元件,就

Vue.js父子元件如何傳值 通俗易懂

父子元件傳值原理圖 一般頁面的檢視App.vue應為這樣 一.父元件向子元件傳值 1.建立子元件,在src/components/資料夾下新建一個Child.vue 2.Child.vue的中建立props,然後建立一個名為message的屬性 3.在Ap

flex定義元件定義事件

今天研究了一下flex自定義控制元件與事件,成功!過程詳細如下: 1,首先新建一個mxml元件檔案,各個引數自己填寫。 <?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.

FLEX中給元件新增定義事件

FLEX 系統提供的事件與DOM的事件基本上完全一致 但是和傳統的WEB開發不同的是  可以為自定義的元件新增自定義的事件    比如我們做了一個元件是一個登入框   當點選登入按鈕的時候觸發我們自定義的事件 比如叫"login"事件  雖然這個login事件 歸根結底還是某

Vue父子元件通訊,props和定義監聽

1.子元件通過props接收父元件中的值,插入子元件中會跟隨父元件而變化。(:x="num")--->頁面中插入{{x}} 2.如果只想變接收過來的值,而不改變父元件的,則吧接收過來的值存一下。(newx:this.x)--->頁面中插入{{newx}} 3.

帶著例項繼續學習(2):父子元件通訊定義事件

要點 我們利用之前學到的知識點做了一個使用者登入框,其中 1、我們通過this.$parent.$refs 訪問相鄰元件的資料 2、一般來講,我們可以把父元件作為子元件的”集中營”(集中資料狀態和事件) 接下來我們看套路: 第一步:父元件初始化資料

Vue.js元件(三)父元件與子元件的資料聯絡 之 子傳父 之 定義事件

父傳子是單向的,子會因父的改變而改變,但父並不會因子的改變而改變。這是由於Vue.js怕父的資料會被使用者在不知情的情況下改變。 但是,子還是可以繞一個圈,把自己的資料傳給父。 途徑:自定義事件。 在解釋子資料傳給父之前,必須先要對事件有一個瞭解。 所謂

Vue元件通訊2--Vue定義事件

自定義事件方式一(常用) 1、給TodoHeader標籤物件繫結addTodo事件監聽 2、觸發自定義事件:addTodo  自定義事件方式二 1、給<TodoHeader>繫結addTodo事件監聽 2、觸發自定義事件:addTodo