最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中實(shí)現(xiàn)子組件接收父組件方法并獲取返回值

 更新時間:2022年08月04日 09:11:15   作者:風(fēng)如也  
這篇文章主要介紹了vue中實(shí)現(xiàn)子組件接收父組件方法并獲取返回值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

子組件接收父組件方法并獲取返回值

項(xiàng)目中有時候會遇到父子組件傳值的問題,比如子組件需要接收父組件方法并獲取該方法返回值的時候。

使用this.$emit('方法名', '參數(shù)1', '參數(shù)2')的方式,獲取到不是父組件方法的return值。但是我們可以將參數(shù)改為回調(diào)函數(shù)的形式,父組件里執(zhí)行該回調(diào)函數(shù),返回值后給子組件,子組件再接收返回值。

示例:

父組件 GetCallback.vue

<template>
? <div>
? ? 我是父組件
? ? <CallbackChild1 @getData="getData" />
? </div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import CallbackChild1 from '@/components/CallbackChild1.vue';
@Component({
? components: {
? ? CallbackChild1,
? },
})
export default class GetCallback extends Vue {
? getData(callback: FunctionConstructor): void {
? ? const name = '我是父組件的值';
? ? callback(name); // 父組件執(zhí)行作為參數(shù)的函數(shù)
? }
}
</script>

子組件 CallbackChild1.vue

<template>
? <div>
? ? <p>我是子組件</p>
? ? <button @click="getDataFromParent">子組件獲取父組件返回值</button>
? ? <span>返回值:{{ value }}</span>
? </div>
</template>
<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';
@Component
export default class CallbackChild1 extends Vue {
? value = '';
? getDataFromParent(): string {
? ?? ?// 子組件接收函數(shù)的值
? ? this.$emit('getData', (val: string) => { this.value = val });
? ? return this.value;
? }
}
</script>

子組件接收父組件的另一種方法

子組件獲取父組件傳遞的數(shù)據(jù)通常是通過props屬性接收父組件的傳遞過來的數(shù)據(jù),

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<my-child :msg='msg'></my-child>
</div>
</body>
</html>
<script src="./node_modules//vue//dist//vue.min.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
msg: 'helloword'
},
components: {
'myChild': {
props: ['msg'],
mounted() {
console.log(this.$attrs)
},
components: {
'myChildren': {
props: ['msg'],
template:
`<span>{{msg}}</span>
`
}
},
template: `<div>{{msg}}
<my-children :msg='msg'></children>
</div>`
}
}
})
</script>

也可以通過子組件的$attrs接收的父組件的數(shù)據(jù),但是這時候傳遞的數(shù)據(jù)子組件中不能有props的屬性,不然子組件的$attrs獲得的是空對象,

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<my-child :msg='msg'></my-child>
</div>
</body>
</html>
<script src="./node_modules//vue//dist//vue.min.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
msg: 'helloword'
},
components: {
'myChild': {
// props:['msg'],
mounted() {
console.log(this.$attrs)
},
components: {
'myChildren': {
//props:['msg'],
template:
`<span>{{this.$attrs.msg}}</span>
`
}
},
template: `<div>{{this.$attrs.msg}}
<my-children :msg='$attrs.msg'></children>
</div>`
}
}
})
</script>

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue Element前端應(yīng)用開發(fā)之樹列表組件

    Vue Element前端應(yīng)用開發(fā)之樹列表組件

    本篇隨筆主要介紹樹列表組件和下拉列表樹組件在項(xiàng)目中的使用,以及一個SplitPanel的組件。
    2021-05-05
  • Vue項(xiàng)目中是否使用store原理深究

    Vue項(xiàng)目中是否使用store原理深究

    這篇文章主要為大家介紹了在Vue項(xiàng)目中是否使用store原理深究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue輪詢請求解決方案的完整實(shí)例

    vue輪詢請求解決方案的完整實(shí)例

    項(xiàng)目開發(fā)中需要做一個輪詢,所以將實(shí)現(xiàn)的過程記錄了一下,下面這篇文章主要給大家介紹了關(guān)于vue輪詢解決方案的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Vuex mutitons和actions初使用詳解

    Vuex mutitons和actions初使用詳解

    這篇文章主要介紹了Vuex mutitons和actions初使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 解決vue3使用element-ui的具體操作

    解決vue3使用element-ui的具體操作

    elmentui是一款為vue設(shè)計(jì)的桌面組件庫,下面這篇文章主要給大家介紹了關(guān)于解決vue3使用element-ui的具體操作,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • vue的ssr服務(wù)端渲染示例詳解

    vue的ssr服務(wù)端渲染示例詳解

    這篇文章主要給大家介紹了關(guān)于vue的ssr服務(wù)端渲染的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Vue中使用Teleport的方法示例

    Vue中使用Teleport的方法示例

    這篇文章主要為大家介紹了Vue中使用Teleport的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 關(guān)于實(shí)現(xiàn)Vue3版抖音滑動插件踩坑指南

    關(guān)于實(shí)現(xiàn)Vue3版抖音滑動插件踩坑指南

    這篇文章主要給大家介紹了關(guān)于實(shí)現(xiàn)Vue3版抖音滑動插件踩坑指南,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue3具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • Vue在項(xiàng)目中如何引入本地Json數(shù)據(jù)

    Vue在項(xiàng)目中如何引入本地Json數(shù)據(jù)

    這篇文章主要介紹了Vue在項(xiàng)目中如何引入本地Json數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解vue中使用axios對同一個接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題

    詳解vue中使用axios對同一個接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題

    這篇文章主要介紹了詳解vue中使用axios對同一個接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

吉林省| 囊谦县| 洪湖市| 河北区| 林口县| 饶河县| 漳平市| 交城县| 荃湾区| 勐海县| 唐河县| 六枝特区| 延边| 江川县| 东乡县| 英超| 景洪市| 揭东县| 花垣县| 宁安市| 平南县| 宜黄县| 崇信县| 通榆县| 安陆市| 临潭县| 建平县| 郑州市| 元氏县| 高唐县| 蓬溪县| 新竹市| 龙游县| 肥城市| 平果县| 雷波县| 察隅县| 花莲市| 石河子市| 镇赉县| 贵溪市|