㈠ Vue-Cli—04.父子組件傳值|祖孫組件傳值|兄弟組件傳值
父組件向子組件傳值,可以通過綁定屬性傳值;子組件通過props接收父組件傳值。
父組件:
子組件:
子組件通過$emit觸發一個自定義事件,將更新的數據傳給父組件。
子組件:
父組件:
首先祖先給子孫後代傳值也是可以用props傳遞,一層層傳遞,如果嵌套了五六層,這種方法就顯得很繁瑣。
所以就用到了provide(提供)和inject(注入)。這兩個是配套使用的,以允許祖先向所有祖先後代注入一個依賴。祖先組件通過provide添加依賴數據,它裡面定義的數據,後代組件可以通過inject選擇性注入並直接使用。
注意: 後代組件通過inject注入祖級組件中的依賴數據,跟props一樣,接收的數據是只讀的,不能修改。
祖先組件:
後代組件:
在Vue的原型對象上,添加一個 $bus屬性 ,該屬性的的屬性值是一個Vue實例。Vue的所有實例,都將共用同一個$bus。這個$bus屬性,稱之為:中央事件匯流排。
vm.$emit( eventName, […args] ): 觸發當前實例上的事件。附加參數都會傳給監聽器回調。
vm.$on( event, callback ): 監聽當前實例上的自定義事件。事件可以由 vm.$emit 觸發。回調函數會接收所有傳入事件觸發函數的額外參數。
vm.$once( event, callback ): 監聽一個自定義事件,但是只觸發一次。一旦觸發之後,監聽器就會被移除。
vm.$off( [event, callback] ): 移除自定義事件監聽器。
兄弟A鴿子組件:
點擊鴿子組件中的『修改烏鴉數據』按鈕,可以修改烏鴉組件頁面的數據。
兄弟B烏鴉組件:
㈡ vue易犯錯誤之父子組件傳值注意-加冒號和不加冒號區別
父組件向子組件傳值,如果不加:冒號,傳過去的不是數值,而是一個字元串
父組件向子組件傳值,加上:冒號,傳過去的就是一個數值,不是字元串,因為加了:冒號以後引號""裡面的內容就是一個js表達式
只有傳遞字元串常量時,不採用v-bind形式,其餘情況均採用v-bind形式傳遞。
如果不加冒號,子組件在接收到值之後,監聽做不到改變監聽值內的屬性
㈢ vue2.0 父組件給子組件傳遞數據的方法
在父組件
App.vue
中引用子組件
A.vue,把
name
的值傳給
A
組件。
1、安裝
在桌面新建一個文件夾
$
cd
到文件中
$
npm
install
-g
vue-cli
$
vue
init
webpack
.
$
npm
install
$
npm
run
dev
vue
init
webpack
.
之後的選擇解釋
2、刪除
1、刪除App中的一些內容如下
2、刪除components文件中的HelloWorld.vue
3、修改
修改App.vue
如下:
<template>
<div
id="app">
//
message
定義在子組件的
props
中
<A
v-bind:message="name"/>
</div>
</template>
<script>
import
A
from
'./components/A'
export
default
{
name:
'App',
components:
{
A
},
data(){
return{
name:"我就是數據啊"
}
}
}
</script>
4、新建
在components新建A.vue並寫入內容如下:
<template>
<div>{{message}}</div>
</template>
<script>
export
default
{
props:
['message']
//接受message傳過來的數據
}
</script>
5、最後
在命令行輸入
$
npm
run
dev
總結
以上所述是小編給大家介紹的vue2.0
父組件給子組件傳遞數據的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:vue父組件向子組件(props)傳遞數據的方法vue組件Prop傳遞數據的實現示例vue中各組件之間傳遞數據的方法示例vue.js組件之間傳遞數據的方法vue子組件使用自定義事件向父組件傳遞數據Vue2.x中的父組件傳遞數據至子組件的方法vuejs動態組件給子組件傳遞數據的方法詳解
㈣ vue父子傳參
1、父子傳參
父組件向子組件傳值
父向子
父組件上邊,在要接受數據的組件上通過動態屬性傳遞
如
:data="data"
子組件通過props屬性接受
1.數組
props:['title','count','imgs','styles'],
2.對象
屬性名類型 Object | Array | String | Numeber | Boolean | Function
props:{
title:Array,
}
props:{
屬性名:{
type:類型,
required:必填項,默認值為false,
defalult:默認值,(如果是簡單值的話,直接設置,如果是數組或者對象的話,需要一個函數),
validator(val){
自定義格式的驗證,函數return 成立
}
}
}
vue 是單向數據流,不能在子組件裡面直接修改父組件傳遞過來的值
子向父
子組件里邊使用$emit
$emit('事件名稱','實參1','實參2')
<button @click="$emit('addCount',count)"></button>
@事件名稱 = "事件處理程序"
父組件接受的方法
@addCount = "方法名"
在methods方法裡面寫函數
addCount(){
console.log(1);
}
非父子
3通過創建一個空對象
在 main.js 裡面Vue.prototype.$bus=new Vue();
所有的組件都是通過vueComponent 實例出來的 vueComponent繼承vue
子組件
傳參的方式: this.$bus.$emit('add',item)
在created方法裡面接受
this.$bus.$on('add',(obj)=>{
console.log(obj)//傳過來的參數值
})
㈤ Vue 組件之間傳參!
父組件向子組件傳參,通過自定義屬性的方式進行傳參,在子組件中使用prop定義自定義的屬性,然後在父組件中通過v-bind指令把需要傳遞的數據綁定在子組件上,那在子組件中props裡面的自定義屬性可以直接使用.
子組件向父組件傳數據使用自定義事件, vue組件提供了一個 emit('自定義事件名', 傳遞的數據) ),子組件傳遞數據時,觸發響應的事件函數,就會自動觸發通過$emit給父組件綁定的自定義事件,自定義事件接受一個參數,參數就是子組件傳遞過來的數據
兄弟組件之間的數據傳遞,通過eventBus來做中間的橋梁,傳輸方通過中間組件調用 on 接受數據,兩者之間的自定義屬性名保持一致。
通過vuex存儲數據, Vuex是一個專為vue.js 應用程序開發的狀態管理模式, 它採用[ 集中式 ]存儲管理數據,以相應的規則保證狀態以一種可預測的方式發生改變, 一變全變,同步更新數據。
ref 引用可以作用在h5標簽上,也可以作用在組標簽上,作用在h5標簽上是獲取的是DOM對象, 作用在組件標簽上,通過this.$refs獲取的是組件的實例對象。
㈥ vue.js 怎麼給組件傳參數
你是說父組件和子組件傳還是子組件給父組件傳?
子組件給父組件傳的話
this.$emit(func,value) 這樣傳遞
父組件給子組件傳的話給子組件裡面放一個props屬性
㈦ 如何在vue.js組件之間進行數據傳遞
組件與組件之間,還存在著不同的關系。父子關系與兄弟關系(不是父子的都暫稱為兄弟吧)。
父子組件
父子關系即是組件 A 在它的模板中使用了組件 B,那麼組件 A 就是父組件,組件 B 就是子組件。
子組件想要使用父組件的數據,我們需要通過子組件的 props 選項來獲得父組件傳過來的數據。以下我使用在 .vue 文件中的格式來寫例子。
如何傳遞數據
在父組件 father.vue 中引用子組件 child.vue,把 name 的值傳給 child 組件。
<template>
<div class="app">
// message 定義在子組件的 props 中
<child :message="name"></child>
</div>
</template>
<script> import child from './child.vue'; export default { components: { child }, data() { return { name: 'linxin' } } }</script>
在子組件 child.vue 中的 props 選項中聲明它期待獲得的數據
<template>
<span>Hello {{message}}</span>
</template>
<script> export default { // 在 props 中聲明獲取父組件的數據通過 message 傳過來 props: ['message'] }</script>
那麼頁面中就會渲染出:Hello linxin
prop 是單向綁定的:當父組件的屬性變化時,將傳導給子組件,但是不會反過來。修改子組件的 prop 值,是不會傳回給父組件去更新視圖的。那麼子組件要如何去與父組件通訊呢?
那就是自定義事件。通過在父組件 $on(eventName) 監聽自定義事件,當子組件里 $emit(eventName) 觸發該自定義事件的時候,父組件執行相應的操作。
比如在父組件中控制一個彈框子組件的顯示,在子組件中按下關閉之後,告訴父組件去隱藏它,然後父組件就執行操作隱藏彈框。例如在子組件中:
這個emit就是觸發事件的地方。
如果是復雜場景,或者不相關的組件之間,建議用vuex,這個相當於Angular中的注冊事件,具體過程可以參考官方手冊,寫的例子和圖例都很詳細了
㈧ vue.js父組件怎麼傳值給子組件
子組件通過$emit方法向抄父組件發送數據,子組件在父組件的模板中,通過自定義事件接收到數據,並通過自定義函數操作數據
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<!-- 子組件向父組件傳遞數據 -->
<div id="box">
<v-parent></v-parent>
</div>
㈨ vue.js 兩個父組件中的子組件怎麼傳值
A子傳A父($emit和$on),A父給B子(prop)。。