国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解

這篇具有很好參考價值的文章主要介紹了Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

目錄

前言

父組件傳子組件 ---- props

給要傳遞數(shù)據(jù)的子組件綁定要傳過去的屬性及屬性值

在子組件中使用props配置項接收

props配置項

子組件傳父組件 ---- 組件的自定義事件

子組件向父組件傳遞數(shù)據(jù)

通過代碼來綁定自定義事件


前言

本文將介紹在Vue中父子組件如何進行通信

父組件傳子組件 ---- props

這里先介紹父組件如何向子組件傳遞數(shù)據(jù)

首先創(chuàng)建腳手架Cli

創(chuàng)建父組件App.vue和子組件SonX.vue

注冊好子組件并在父組件中使用

子組件

導(dǎo)出子組件

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div>
    <h1>我是兒子</h1>
  </div>
</template>

<script>
export default {
    name:'SonX'
}
</script>

<style>

</style>

父組件

導(dǎo)入子組件并注冊使用

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div id="app">
   <SonX></SonX>
  </div>
</template>

<script>
import SonX from './components/SonX.vue'

export default {
  name: 'App',
  components: {
    SonX
  }
}
</script>

<style>

</style>

給要傳遞數(shù)據(jù)的子組件綁定要傳過去的屬性及屬性值

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

僅在子組件上添加屬性

<template>
  <div id="app">
   <SonX name="zs" age="20" gender="男"></SonX>
  </div>
</template>

在子組件中使用props配置項接收

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div>
    <h1>我是兒子</h1>
    <h2>{{name}}</h2>
    <h2>{{age}}</h2>
    <h2>{{gender}}</h2>
  </div>
</template>

<script>
export default {
    name:'SonX',
    props:['name','age','gender']
}
</script>

<style>

</style>

效果

成功渲染到頁面上

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

props配置項

注意:不要直接修改props中的數(shù)據(jù)

簡單接收,直接采用數(shù)組形式接收:

props:['name','age','gender']

添加類型限制:

props:{

? ? ? ? name:String,

? ? ? ? age:Number,

? ? ? ? gender:String

}

當添加了類型限制后,如果父組件傳過去屬性值不符合就會報錯

如下,父組件傳過去的age='20'是字符串,并不是數(shù)字,所以就報錯了

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

添加類型限制,并且還可以添加默認值,還可以添加必要性:

props:{

? ? ? ? name:{

? ? ? ? ? ? ? ? type:String,

? ? ? ? ? ? ? ? required:true

????????????????????????},

? ? ? ? age:{

? ? ? ? ? ? ? ? type:Number,

? ? ? ? ? ? ? ? default:20

????????????????????????},

? ? ? ? gender:{

? ? ? ? ? ? ? ? type:String,

? ? ? ? ? ? ? ? required:true

????????????????????????}

}

添加了默認值和必要性,當添加必要性時,如果沒有傳遞就會報錯,添加了默認值,如果沒有傳遞該屬性,子組件就會使用默認值

子組件傳父組件 ---- 組件的自定義事件

在父組件中

先在子組件上自定義一個事件

v-on:事件名='函數(shù)' 或 @事件名="函數(shù)"

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div id="app">
   <SonX name="zs" age="20" gender="男" v-on:event="think"></SonX>
  </div>
</template>

<script>
import SonX from './components/SonX.vue'

export default {
  name: 'App',
  components: {
    SonX
  },
  methods:{
    think(){
      console.log('傳遞成功');
    }
  }
}
</script>

<style>

</style>

在子組件中

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

用以下方法進行對自定義事件的執(zhí)行

this.$emit('自定義的事件名')

<template>
  <div>
    <h1>我是兒子</h1>
    <h2>{{name}}</h2>
    <h2>{{age}}</h2>
    <h2>{{gender}}</h2>
    <button @click="think2">測試</button>
  </div>
</template>

<script>
export default {
    name:'SonX',
    props:['name','age','gender'],
    methods:{
      think2(){
        this.$emit('event')
      }
    }
}
</script>

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

子組件向父組件傳遞數(shù)據(jù)

子組件中

this.$emit('自定義的事件名',傳遞的參數(shù))

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div>
    <h1>我是兒子</h1>
    <button @click="think2">測試</button>
  </div>
</template>

<script>
export default {
    name:'SonX',
    data(){
     return {
      name:'ls',
      age:30,
      gender:'女'
     }
    },
    methods:{
      think2(){
        this.$emit('event',this.name,this.age,this.gender)
      }
    }
}
</script>

父組件中

對子組件中傳過來的數(shù)據(jù)進行接收

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div id="app">
   <SonX name="zs" age="20" gender="男" v-on:event="think"></SonX>
  </div>
</template>

<script>
import SonX from './components/SonX.vue'

export default {
  name: 'App',
  components: {
    SonX
  },
  methods:{
    think(name,age,gender){
      console.log(name,age,gender);
    }
  }
}
</script>

成功接收并打印出來

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

通過代碼來綁定自定義事件

先通過ref獲取子組件

ref='組件名'

在mounted鉤子函數(shù)中

this.$refs.ref獲取到的組件名.$on('自定義事件名',回調(diào)函數(shù))

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript

<template>
  <div id="app">
   <SonX ref="SonX"></SonX>
  </div>
</template>

<script>
import SonX from './components/SonX.vue'

export default {
  name: 'App',
  mounted(){
    this.$refs.SonX.$on('event',this.think)
  },
  components: {
    SonX
  },
  methods:{
    think(name,age,gender){
      console.log(name,age,gender);
    }
  }
}
</script>

在頁面上渲染

Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解,vue,vue.js,前端,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-755598.html

到了這里,關(guān)于Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序-父子組件之間的通信

    父子組件之間通信的3種方式: 屬性綁定 用于父組件向子組件的指定屬性設(shè)置數(shù)據(jù),僅能設(shè)置JSON兼容的數(shù)據(jù) 子組件在properties節(jié)點中聲明對應(yīng)的屬性并使用。代碼: 事件綁定 用于子組件向父組件傳遞數(shù)據(jù),可以傳遞任意數(shù)據(jù) 事件綁定用于實現(xiàn)子向父傳值,可以傳遞任意類型

    2024年02月03日
    瀏覽(87)
  • 微信小程序父子組件之間通信的 3 種方式

    父子組件之間通信的 3 種方式 ① 屬性綁定 ? 用于父組件向子組件的指定屬性設(shè)置數(shù)據(jù),僅能設(shè)置 JSON 兼容的數(shù)據(jù) ② 事件綁定 ? 用于子組件向父組件傳遞數(shù)據(jù),可以傳遞任意數(shù)據(jù) ③ 獲取組件實例 ? 父組件還可以通過 this.selectComponent() 獲取子組件實例對象,這樣就可以直

    2024年02月09日
    瀏覽(85)
  • vue父子組件之間傳值的方法

    父傳子 方式: props 效果: 把父組件的 fatherName 屬性傳入子組件,在子組件中使用 父組件代碼: 子組件代碼: 子傳父 方式: $emit 效果: 在子組件觸發(fā)事件,修改父組件的fatherName屬性 父組件代碼: 子組件代碼: 兄弟傳值 方式: eventBus.js 效果: 任意組件之間相互傳值 代

    2024年02月09日
    瀏覽(94)
  • vue父子組件之間的傳參的幾種方式

    這是最常用的一種方式。通過props選項,在父組件中傳遞數(shù)據(jù)給子組件。在子組件中使用props聲明該屬性,就可以訪問到父組件傳遞過來的數(shù)據(jù)了。 子組件向父組件傳遞數(shù)據(jù)的方式。在子組件中使用emit方法觸發(fā)一個自定義事件,并通過參數(shù)傳遞數(shù)據(jù)。在父組件中監(jiān)聽這個事件

    2023年04月24日
    瀏覽(101)
  • Vue組件通信——父子組件通信的四種方法

    Vue組件通信——父子組件通信的四種方法

    全局引入 在main.js文件中引入并注冊 之后就可以全局使用組件了 局部引入 在父組件中引入 之后就可以在父組件中使用組件了 在子組件 prop 中可以注冊一些自定義組件屬性,父組件調(diào)用子組件時可以向 prop 中的自定義屬性傳值。 子組件代碼: 父組件代碼 prop 也可以通過 v-

    2023年04月16日
    瀏覽(101)
  • vue父子組件之間雙向數(shù)據(jù)綁定的(vue2/vue3)

    vue父子組件之間雙向數(shù)據(jù)綁定的四種方法(vue2/vue3) vue考慮到組件的可維護性,是不允許子組件改變父組件傳的props值的。父組件通過綁定屬性的方式向子組件傳值,而在子組件中可以通過$emit向父組件通信(第一種方式),通過這種間接的方式改變父組件的data,從而實現(xiàn)子組

    2024年02月08日
    瀏覽(89)
  • VUE--組件通信(非父子)

    VUE--組件通信(非父子)

    一、非父子通信? ---? event bus 事件總線 ? ? ? ? 作用:非父子組件之間進行 簡易的消息傳遞 ? ? ? ? 步驟:? ??????????????? ? 1、創(chuàng)建一個都能訪問到的事件總線(空vue實例)--- utils/EventBus.js ? ? ? ? ? ? ? ? ? 2、?接收方(A組件),監(jiān)聽Bus實例的事件 ? ? ? ?

    2024年01月19日
    瀏覽(93)
  • 前端基礎(chǔ)(props emit slot 父子組件間通信)

    前端基礎(chǔ)(props emit slot 父子組件間通信)

    前言 :如何實現(xiàn)組件的靈活使用,今天學(xué)習(xí)組件封裝用到的props、slot和emit。 目錄 props 子組件 父組件 示例代碼 slot 示例代碼 作用域插槽 emit 示例代碼 需要實現(xiàn)在其他組件中使用同一個子組件。 子組件(所謂子組件,就是封裝好的組件,供其他組件使用) 子組件定義了so

    2024年02月11日
    瀏覽(100)
  • vue3-父子組件間通信

    在實際業(yè)務(wù)開發(fā)的過程中,我們時常會遇到組件間的通信問題,比如:父子組件間通信、同級組件間通信等。本篇文章中主要介紹父子組件間通信。父子組件間通信主要有以下常見形式: 方案 父組件向子組件 子組件向父組件 props/emits props emits v-model/emits v-model emits ref/emits

    2024年02月05日
    瀏覽(92)
  • vue組件之間的五種傳值方法(父子\兄弟\跨組件)

    父傳子 (自定義屬性 props) 父組件向子組件傳參,通過自定義屬性的方式進行傳參,在子組件中使用prop定義自定義的屬性,然后在父組件中通過v-bind指令把需要傳遞的數(shù)據(jù)綁定在子組件上,那在子組件中props里面的自定義屬性可以直接使用。 子傳父 (自定義事件 this.$emit) 子組

    2023年04月08日
    瀏覽(40)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包