vue常用的元件傳參通訊方式
1.父元件傳值子元件
原理:父元件給子元件新增屬性,子元件通過props獲取屬性值,接收到父元件傳遞的引數;
案例如下:
父元件程式碼如下:
<template> <div> <!-- 父元件新增入參生成模組 --> 父元件傳遞:<input type="text" v-model="value"> <!-- 子元件定義傳遞引數屬性text --> <ChildA :text='value'> </ChildA> </div> </template> <script> import ChildA from '../components/childA.vue'; export default { data(){ return{ value:'' } }, components:{ ChildA, }, } </script>
子元件程式碼如下:
<template>
<div>
接收父元件的值:{{text}}
</div>
</template>
<script>
export default {
data(){
return{}
},
// 接收父元件屬性
props:['text']
}
</script>
ps:在父元件定義text屬性並將引數通過該屬性傳遞至子元件ChildA,在子元件通過props接收text屬性並使用;
2.子元件傳值父元件
原理:子元件通過$emit派發,子元件通過props獲取屬性值,接收到父元件傳遞的引數;
案例如下:
子元件程式碼如下:
<template> <div> <!-- 子元件新增入參生成模組,監聽輸入框改變向父元件傳送資料“childChange”--> 子元件傳遞: <input type="text" v-model="value" @input='childChange'> </div> </template> <script> export default { data(){ return{ value:'' } }, methods:{ childChange(){ // 通過this.$emit向父元件傳送資料,資料放在“childChange”中 this.$emit('childChange',this.value) } } } </script>
父元件程式碼如下:
<template>
<div>
父元件接收值:{{text}}
<!-- 繫結“childChange”,添加回調“receive”接收引數 -->
<ChildA
@childChange='receive'>
</ChildA>
<p />
</div>
</template>
<script>
import ChildA from '../components/childA.vue';
export default {
data(){
return{
text:''
}
},
components:{
ChildA,
},
methods:{
// 通過回撥函式入參獲取子元件傳遞的引數
receive(value){
this.text = value;
}
},
}
</script>
ps:在子元件定義方法通過this.$emit傳送資料,在父元件通過給子元件新增繫結事件,獲取子元件的引數並使用;
3.兄弟元件傳值
原理:引入中間控制元件,傳送資料元件通過$emit傳送資料,接收資料元件通過$on接收資料;
案例程式碼如下:
中間控制元件程式碼如下:
import Vue from 'Vue';
export default new Vue;
ps:建立一個vue例項並匯出,作為中間控制元件使用;
父元件程式碼如下:
<template>
<div>
<ChildA></ChildA>
<childB></childB>
</div>
</template>
<script>
import ChildA from '../components/childA.vue';
import ChildB from '../components/childB.vue';
export default {
data(){
return{}
},
components:{
ChildA,
ChildB
},
}
</script>
子元件A(資料發出元件)程式碼如下:
<template>
<div>
<!-- 子元件A新增入參生成模組,監聽輸入框改變向元件B傳送資料-->
子元件傳遞:
<input
type="text"
v-model="value"
@input='childChange'>
</div>
</template>
<script>
// 引入中間控制元件
import Bus from '../assets/Bus.js';
export default {
data(){
return{
value:''
}
},
methods:{
childChange(){
// 通過Bus.$emit向B元件傳送資料,資料放在“childChange”中
Bus.$emit('childChange',this.value)
}
}
}
</script>
子元件B(資料接收元件)程式碼如下:
<template>
<div>
元件接收的值{{text}}
</div>
</template>
<script>
// 引入中間控制元件
import Bus from '../assets/Bus.js';
export default {
data(){
return{
text:''
}
},
created(){
// 通過Bus.$on接收A元件發來資料
Bus.$on('childChange',(value)=>{
this.text = value
})
}
}
</script>
ps:在傳送資料和接收資料的元件都需要引入Bus.js作為中間控制元件;
以上內容為個人總結,不足之處還望支援,歡迎留言交流~
相關推薦
vue常用的元件傳參通訊方式
1.父元件傳值子元件 原理:父元件給子元件新增屬性,子元件通過props獲取屬性值,接收到父元件傳遞的引數; 案例如下: 父元件程式碼如下: <template> <div> <!-- 父元件新增入參生成模組 --
vue路由元件傳參-頁面通訊
vue路由傳參,是頁面通訊的重要組成部分,而掌握路由傳參,必須要認識一個重要物件-$route。(切記,是$route,而不是$router) $route物件 這是一個專門用於記錄vue元件引數的物件。 例如: //router.js { path
vue父子元件傳參之ref
在vue中,傳參的常用的就父子元件傳參,兄弟元件傳參。今天我們說的是父子元件傳參中的一種方式$ref和ref 首先我們建立一個子元件 並給他新增一個number的值和繫結一個點選事件@click='add()',每次點選加1 Vue.component('counter', {
vue路由元件傳參
在元件中使用 $route 會使之與其對應路由形成高度耦合,從而使元件只能在某些特定的 URL 上使用,限制了其靈活性。 使用 props 將元件和路由解耦: 取代與 $route 的耦合 const User = { templat
前端框架Vue(8)——子父元件的傳參通訊
父子間的通訊傳值是 vue 中的一個重要的內容和掌握點。 *vue2.0 推薦使用 vuex,全域性進行狀態管理。(後面再講) 首先講一下遇到的 需求背景: 解釋一下: 元件之間的關係: <div id="app">
Vue元件傳參
component( ) 自定義元件時經常會用到引數,主要有兩種情況:父向子傳參、子向父傳參。 父子傳參: 在父子傳參中需要用到的是 component 中的 props 屬性,props 是一個數組,包含了父級元件傳來的引數。 下面這個例子中,定義了一個 user 元件,用來顯示一
2018年11月10日 關於Vue.js生態之Vue-router and 傳參方式
關於router的用法 //在html中的相關程式碼 <div id="app"> <div> <router-link to="/">首頁</router-link> //<router-link>是Vue-route
Vue中父子元件傳值的方式
父元件向子元件傳值 父元件呼叫子元件時,在標籤上繫結動態屬性 <template> <div id='parent'> <v-child :title='title' :run='run'></v-child&g
VUE 路由router父子傳參的方式(路由傳參)
VUE 路由父子傳參的方式 方案一: getDescribe(id) { // 直接呼叫router.push實現攜帶參數的跳轉this.router.push 實現攜帶引數的跳轉 this.router.push實現攜帶參數的跳轉this.
vue裡面路由傳參的三種方式
1、方式一 通過query的方式也就是?的方式路徑會顯示傳遞的引數 HTML的方式<router-link :to="{name:xxx,query:{page:1,code:8899}}"></router-link> JS的方式 <template>
2018年11月10日 關於Vue.js生態之Vue-router and 傳參方式
關於router的用法 //在html中的相關程式碼 <div id="app"> <div> <router-link to="/">首頁</router-link> //<router-link&
vue學習(四):子元件向父元件傳參
子元件向父元件傳參主要依靠 v-on 和 $.emit 這個是vue官網上給的方法呼叫,我們看看頁面上怎麼使用。 子元件 main_Header.vue <template> <div> <div>{{count}}</
vue根據router傳參,實現渲染不同元件的寫法
現在的操作 <div v-if="$route.query.src">滿足條件渲染</div> <div v-else">不滿足時渲染</div> 以前的SB操作 mounted() { if(this.$ro
vue-router 路由元件傳參
1.最簡單的用 name傳參$route.name 輸出的是當前路由 ,不過這個一般不用1.在路由檔案router/index.js裡配置name屬性。 routes: [ { path: '/', name: 'Hello',
最詳細的vue的父子元件以及非父子元件之間的通訊方式
1.父元件傳遞資料給子元件父元件資料如何傳遞給子元件呢?可以通過props屬性來實現父元件://這裡必須要用 - 代替駝峰data(){ return { msg: [1,2,3] }; }子元件通過props來接收資料: 方式1:props: ['childMsg']方式2 :props: { childM
vue.resource delete 方法 傳參正確方式
吐槽一下網上說的各種方法太坑,簡單實現方法 {body: json引數 } 請以新增 body 這種方式提交~ vm.$http.delete(url, {body: vm.shipments}
vue學習(三):父元件向子元件傳參
既然是元件化開發,當然少不了資料傳遞,我們先看看官網上寫的。 使用props傳遞引數,試一下,還是用我們之前的專案結構 一、靜態傳遞 1.main_header.vue <template> <div>{{msg}}</div> &
VUE中父子元件傳參(簡單明瞭)
· 父元件向子元件傳遞引數 child.vue如下 <template> <div class="childClass"> <h3>子元件內容</h3> <p :class
vue初始化、資料處理、元件傳參、路由傳參、全域性定義CSS與JS、元件生命週期
目錄 專案初始化 元件資料區域性化處理 子元件 父元件 路由邏輯跳轉 案例 元件傳參 父傳子
使用HTTP協議向服務器傳參的方式及django中獲取參數的方式
type quest bsp sed 4.2 默認值 未命名 訪問表 url 使用HTTP協議向服務器傳參的四種方式 URL路徑攜帶參數,形如/weather/beijing/2018; 查詢字符串(query string),形如key1=value1&key2