国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue.js 父子組件通信的十種方式

2024-05-06 15:28:21
字體:
來源:轉載
供稿:網友

面試官:Vue 中父子組件通信有哪些方式?

自己先想一分鐘。

無可否認,現(xiàn)在無論大廠還是小廠都已經用上了Vue.js 框架,簡單易上手不說,教程詳盡,社區(qū)活躍,第三方套件還多。真的是前端開發(fā)人員必備技能。而且在面試當中也往往會問到關于 Vue 方面的各種問題,其中大部分面試官會問到如上這種問題。

最近一直在做 Vue項目代碼層面上的優(yōu)化,說實話,優(yōu)化別人的代碼真是件痛苦的事情,功能實現(xiàn)尚且不說,就說代碼規(guī)范我就能再寫出一篇文章來。真的是無規(guī)范不成方圓,規(guī)范這個東西太重要了!有點扯了,回到主題,咳咳,那就談談我對上面的面試題的理解吧,文筆有限,不妥之處,歡迎在文章結尾留言斧正啊,正啊,啊!

概述

幾種通信方式無外乎以下幾種:

Prop (常用) $emit (組件封裝用的較多) .sync 語法糖 (較少) $attrs 和 $listeners (組件封裝用的較多) provide 和 inject (高階組件/組件庫用的較多) 其他方式通信

詳述

下面逐個介紹,大神請繞行。

1. Prop

英式發(fā)音:[prɒp]。這個在我們日常開發(fā)當中用到的非常多。簡單來說, 我們可以通過Prop 向子組件傳遞數據 。用一個形象的比喻來說,父子組件之間的數據傳遞相當于自上而下的下水管子,只能從上往下流,不能逆流。這也正是 Vue 的設計理念之單向數據流。而 Prop 正是管道與管道之間的一個銜接口,這樣水(數據)才能往下流。說這么多,看代碼:

<div id="app"> <child :content="message"></child></div>// Jslet Child = Vue.extend({ template: '<h2>{{ content }}</h2>', props: {  content: {   type: String,   default: () => { return 'from child' }  } }})new Vue({ el: '#app', data: {  message: 'from parent' }, components: {  Child }})

你可以狠狠的戳這里查看Demo!瀏覽器輸出:

from parent

2. $emit

英式發(fā)音:[iˈmɪt]。官方說法是 觸發(fā)當前實例上的事件。附加參數都會傳給監(jiān)聽器回調 。按照我的理解不知道能不能給大家說明白,先簡單看下代碼吧:

<div id="app"> <my-button @greet="sayHi"></my-button></div>let MyButton = Vue.extend({ template: '<button @click="triggerClick">click</button>', data () {  return {   greeting: 'vue.js!'  } }, methods: {  triggerClick () {   this.$emit('greet', this.greeting)  } }})new Vue({ el: '#app', components: {  MyButton }, methods: {  sayHi (val) {   alert('Hi, ' + val) // 'Hi, vue.js!'  } }})

你可以狠狠的戳這里查看Demo! 大致邏輯是醬嬸兒的:當我在頁面上點擊按鈕時,觸發(fā)了組件 MyButton 上的監(jiān)聽事件 greet ,并且把參數傳給了回調函數 sayHi 。說白了,當我們從子組件Emit(派發(fā)) 一個事件之前,其內部都提前在事件隊列中On(監(jiān)聽)了這個事件及其監(jiān)聽回調。其實相當于下面這種寫法:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 哈尔滨市| 威海市| 河北区| 保康县| 阜宁县| 阳东县| 公安县| 曲阳县| 车险| 河西区| 花莲县| 台南县| 延川县| 鄂尔多斯市| 江陵县| 古蔺县| 宽城| 安平县| 松溪县| 宝丰县| 周口市| 新兴县| 黔江区| 龙山县| 松阳县| 和平县| 泰来县| 康保县| 临武县| 松原市| 甘德县| 库车县| 抚松县| 镇宁| 南召县| 隆化县| 谷城县| 贵溪市| 东辽县| 山阳县| 建德市|