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

vue如何在自定義組件中使用v-model

 更新時(shí)間:2018年05月14日 13:49:25   作者:U-FEX  
本篇文章主要介紹了vue如何在自定義組件中使用v-model,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

v-model指令

所謂的“指令”其實(shí)就是擴(kuò)展了HTML標(biāo)簽功能(屬性)。

先來(lái)一個(gè)組件,不用vue-model,正常父子通信

<!-- parent -->
<template>
<div class="parent">
  <p>我是父親, 對(duì)兒子說(shuō): {{sthGiveChild}}</p>
  <Child @returnBack="turnBack" :give="sthGiveChild"></Child>
</div>
</template>
<script>
import Child from './Child.vue';
export default {
  data() {
    return {
      sthGiveChild: '給你100塊'
    };
  },
  components: {
    Child
  },
  methods: {
    turnBack(val) {
      this.sthGiveChild = val;
    }
  }
}
</script>
<!-- child -->
<template>
<div class="child">
  <p>我是兒子,父親對(duì)我說(shuō): {{give}}</p>
  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回應(yīng)</a>
</div>
</template>
<script>
export default {
  props: {
    give: String
  },
  methods: {
    returnBackFn() {
      this.$emit('returnBack', '還你200塊');
    }
  }
}
</script>

點(diǎn)擊回應(yīng)后,父親對(duì)兒子說(shuō)的話變成了兒子的回應(yīng)。兒子收到的信息也變了,實(shí)現(xiàn)通信。

改用v-model

<!-- parent -->
<template>
<div class="parent">
  <p>我是父親, 對(duì)兒子說(shuō): {{sthGiveChild}}</p>
  <Child v-model="sthGiveChild"></Child>
</div>
</template>
<script>
import Child from './Child.vue';
export default {
  data() {
    return {
      sthGiveChild: '給你100塊'
    };
  },
  components: {
    Child
  }
}
</script>
<!-- child -->
<template>
<div class="child">
  <p>我是兒子,父親對(duì)我說(shuō): {{give}}</p>
  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回應(yīng)</a>
</div>
</template>
<script>
export default {
  props: {
    give: String
  },
  model: {
    prop: 'give',
    event: 'returnBack'
  },
  methods: {
    returnBackFn() {
      this.$emit('returnBack', '還你200塊');
    }
  }
}
</script>

文案雖有不同,但是效果最終是一致的。

看看官方自定義組件的v-model

官方例子https://vuefe.cn/v2/api/#model

有這么一句話: 默認(rèn)情況下,一個(gè)組件上的 v-model 會(huì)把 value 用作 prop 且把 input 用作 event。

嘗試把上邊子組件的例子改一下,也是跑的通的

<!-- child -->
<template>
<div class="child">
  <p>我是兒子,父親對(duì)我說(shuō): {{value}}</p>
  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回應(yīng)</a>
</div>
</template>
<script>
export default {
  props: {
    value: String
  },
  methods: {
    returnBackFn() {
      this.$emit('input', '還你200塊');
    }
  }
}
</script>

做一下總結(jié):

如果你懶,不想自己去處理事件,那就用默認(rèn)的 'value' && 'input' 事件去處理,如果用原生事件的,甚至連model屬性也可以省去。

如果你想自己的代碼比較明確,區(qū)分出自定義事件,那么下面的組合才是你的菜。

prop和event看你自己心情定義,當(dāng)然要知名見(jiàn)意【盡量避開(kāi)關(guān)鍵字】

model: {
prop: 'someProp', // 注意,是prop,不帶s。我在寫(xiě)這個(gè)速記的時(shí)候,多寫(xiě)了一個(gè)s,調(diào)試到懷疑人生
event: 'someEvent'
}
this.$emit('someProp', [returnValueToParent])

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue?調(diào)用攝像頭掃描條碼功能實(shí)現(xiàn)代碼

    Vue?調(diào)用攝像頭掃描條碼功能實(shí)現(xiàn)代碼

    本文介紹了如何使用Vue.js和jsQR庫(kù)來(lái)實(shí)現(xiàn)調(diào)用攝像頭并掃描條碼的功能,通過(guò)安裝依賴、獲取攝像頭視頻流、解析條碼等步驟,實(shí)現(xiàn)了從開(kāi)始掃描到停止掃描的完整流程,同時(shí),還強(qiáng)調(diào)了瀏覽器兼容性、HTTPS環(huán)境、權(quán)限問(wèn)題和性能優(yōu)化的重要性,感興趣的朋友一起看看吧
    2025-03-03
  • Vue實(shí)現(xiàn)驗(yàn)證碼登錄的方法實(shí)例

    Vue實(shí)現(xiàn)驗(yàn)證碼登錄的方法實(shí)例

    最近在自己寫(xiě)頁(yè)面,然后寫(xiě)登錄注冊(cè)UI的時(shí)候需要一個(gè)驗(yàn)證碼組件,去搜一下沒(méi)找到什么合適的,于是自己寫(xiě)一個(gè),這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)驗(yàn)證碼登錄的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Element?Plus修改表格行和單元格樣式詳解

    Element?Plus修改表格行和單元格樣式詳解

    在使用Element Plus中的table組件展示數(shù)據(jù)時(shí),由于需要對(duì)表格行內(nèi)數(shù)據(jù)的數(shù)據(jù)進(jìn)行修改,下面這篇文章主要給大家介紹了關(guān)于Element?Plus修改表格行和單元格樣式的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 分享vue.js devtools遇到一系列問(wèn)題

    分享vue.js devtools遇到一系列問(wèn)題

    這篇文章主要為大家詳細(xì)介紹了vue.js devtools遇到問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Vue實(shí)現(xiàn)開(kāi)關(guān)按鈕拖拽效果

    Vue實(shí)現(xiàn)開(kāi)關(guān)按鈕拖拽效果

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)開(kāi)關(guān)按鈕拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Vue2.0 slot分發(fā)內(nèi)容與props驗(yàn)證的方法

    Vue2.0 slot分發(fā)內(nèi)容與props驗(yàn)證的方法

    本篇文章主要介紹了Vue2.0 slot分發(fā)內(nèi)容與props驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • vue中進(jìn)入詳情頁(yè)記住滾動(dòng)位置的方法(keep-alive)

    vue中進(jìn)入詳情頁(yè)記住滾動(dòng)位置的方法(keep-alive)

    今天小編就為大家分享一篇vue中進(jìn)入詳情頁(yè)記住滾動(dòng)位置的方法(keep-alive),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue項(xiàng)目基于WebRTC實(shí)現(xiàn)一對(duì)一音視頻通話

    vue項(xiàng)目基于WebRTC實(shí)現(xiàn)一對(duì)一音視頻通話

    這篇文章主要介紹了vue項(xiàng)目基于WebRTC實(shí)現(xiàn)一對(duì)一音視頻通話效果,實(shí)現(xiàn)代碼分為前端和后端兩部分代碼,需要的朋友可以參考下
    2024-05-05
  • vue如何使用 Slot 分發(fā)內(nèi)容實(shí)例詳解

    vue如何使用 Slot 分發(fā)內(nèi)容實(shí)例詳解

    本篇文章主要介紹了vue如何使用 Slot 分發(fā)內(nèi)容實(shí)例詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 前端Vue如何獲取登錄的用戶名或用戶id代碼實(shí)例

    前端Vue如何獲取登錄的用戶名或用戶id代碼實(shí)例

    在前端開(kāi)發(fā)中,獲取登錄用戶的用戶名是一項(xiàng)常見(jiàn)的需求,這篇文章主要給大家介紹了關(guān)于前端Vue如何獲取登錄的用戶名或用戶id的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

都昌县| 孟州市| 涟水县| 保亭| 泸水县| 瑞金市| 焦作市| 桐乡市| 巴南区| 宜宾县| 崇义县| 长岭县| 平湖市| 美姑县| 陇西县| 金坛市| 新宾| 高密市| 旌德县| 淳化县| 宽甸| 新昌县| 阿瓦提县| 宜宾县| 军事| 田林县| 灵宝市| 文登市| 沁水县| 沙坪坝区| 来凤县| 石狮市| 海宁市| 通海县| 青神县| 呈贡县| 天气| 广丰县| 揭阳市| 津南区| 华池县|