Vue 組件實例屬性的使用

前言

因為最近面試了二、三十個人,發現大部分都還是只是停留在 Vue 文檔的教程。有部分連教程這部分的文檔也沒看全。
所以稍微寫一點,讓新上手的 Vuer 多了解 Vue 文檔的其他更需要關注的點。

因為 Vue 文檔已經是個很成熟的文檔,并且實現的 demo 簡潔明了,我就不具體寫實現代碼了,文內只會貼需要關注的知識的文檔地址

v-model

自定義組件上使用 v-model

一般可能會問怎么在自己寫的組件上實現 v-model。因為一些同學用多了組件庫,用的心安理得,完全不去想為什么組件庫可以用 v-model 做各種雙向綁定。問到如何自己寫的時候直接懵逼了,所以這個是一定要會的。如果能在回答一下子組件可以用 model 屬性,讓 v-model 不再需要對 value 這個 props 做雙向綁定就更好了, 說明你文檔看的仔細。

其實 v-model 就是 prop + $emit 的語法糖, 可以拆成 value 和 @input

所以記住拉,如果是簡單的子組件要同步數據到父組件,不要再傻傻的 prop + $emit, 在父組件里修改數據了。

本章相關文檔鏈接:

  • v-model
  • model

多個屬性的雙向綁定呢

如果你會用 v-model,那么就要知道 v-model 只能綁定一個屬性,如果父組件有多個需要和子組件的做雙向綁定的屬性怎么辦?你可以會想到用對象或者數組。但是這可以會導致操作過于復雜。然而可以用 .async 修飾符完成。

本章相關文檔鏈接:

  • .async修飾符

實例屬性

attrs && props

這是個不常用的屬性,但是在高級用法里非常常見。比如我把組件庫里的多個組件封裝一層,成為一個大的業務組件。我用這個大組件的時候需要靈活控制里面組件庫的 prop,將參數透傳到組件庫的組件里。示例如下:


// my-search.vue
<template><el-input v-model='myValue'/><el-button>搜索</el-button>
</template>

// page.vue
<template><my-search placeholder='請輸入搜索'></my-search>
</template>

有的小伙伴回答在 my-search 里定義這個 prop ,然后傳到 el-input 里。然而他有 20 多個 prop,這樣太麻煩了。

有聰明的小伙伴說傳個對象進去,然而最后還是沒解決怎么把這個對象綁定到 el-input 上。答案已經很接近了。

其實 Vue 已經幫我們把這個對象弄好了,我們只要直接在 el-input 組件上寫 v-bind="$attrs"

別忘了 v-bind 可以傳對象的啊!!

本章相關文檔鏈接:

  • $attrs
  • $props
  • v-bind

listeners

上面搞定了 props 的透傳,別忘了還有事件的透傳。同理 Vue 已經幫我們弄好了。v-bind="$listeners"

本章相關文檔鏈接:

  • $listeners
  • v-on

常用的實例屬性

其他我們比較常用的就是 $refs$parent$children$el

不常用的實例屬性

$slots$scopedSlots。slots 可以判斷父組件里道理傳了哪些 slot 進來。其他的大家就去官網文檔里看把。

先到這

到這里應該大家能了解到,除了 Vue 文檔除了教程章節,API 章節也至關重要。我覺得熟讀 Vue 文檔,Vue 深度就能達到一定程度。至少面試問 Vue 的話,如果連 API 都不熟,會比較扣分。如果需要更深入了解就去看源碼,看優秀的組件庫的實現。。

其實我有很多也是從組件庫里學到的~ 建議有空多看看你經常使用的組件庫源碼,至少比 Vue 源碼簡單多了。。而且更貼合我們的使用場景

來源:https://segmentfault.com/a/1190000017483791

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281051.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# 讀取硬盤信息類

在編寫工具檢查硬盤信息時,總結常用到的類: Win32_DiskDrive 這個用了檢查整個硬盤的信息,如果電腦只有一個硬盤,那只顯示一條信息。參考如下代碼,AddTextBox為自定義顯示函數。(MSDN class 查詢&#xff1…

95后滬漂女孩深陷“狠”且“卷”職場,向上思維,永不過時!

hi,這里是桑小榆。最近和一個伙伴oncall了很久,對我的文章以及思想轉變產生了很大的共鳴,她向我分享了一些職場經歷還有成長經歷等,她的這些經歷也讓我引發了一定的思考。光光,最近剛升任了部門主管,對于當…

PHP:6種GET和POST請求發送方法

在i94web博客中,我試過了暢言和多說兩種社會化評論框,后來還是拋棄了暢言,不安全。 無論是暢言還是多說,我都需要從遠程抓取文章的評論數,然后存入本地數據庫。對于多說,請求的格式如下: // 獲取…

解決Ubuntu 16.04下提示boot分區空間不足的辦法

原文地址: http://www.jb51.net/article/106976.htm   https://www.linuxidc.com/Linux/2015-09/123227.htm 因為linux內核一直在更新,更新后,舊的內核就不在使用,但舊的內核文件還在boot里面,占據著空間,更新幾次過…

3d鏡頭 適配_您是否應該將鏡頭適配器與無反光鏡相機一起使用?

3d鏡頭 適配Canon佳能Mirrorless cameras aren’t the future, they’re the present. If you’re switching from an older DSLR, though, the obvious thing to do is just buy an adapter so you can keep using your old gear. 無反光鏡相機不是未來,而是現在。…

C#彈窗提示并自動關閉方法

剛學C#不久,就寫個工具,總結寫一個簡便自定義提示窗口方法,并自動關閉。 1.在項目添加windows form(非user control),命名為Form_wait。 2.在Form_wait,加入需要控件與一個定時器timer1。 數字10為計時顯…

dotNET 7:最小 API 使用

最小 API 并不是在 .NET 7 中才加入的,記得應該是在 .NET 6 中就已經提供,只是對我來說,到現在才開始使用。創建一個最小 API在 VS 2022 中創建 WebAPI 項目,不勾選使用控制器,創建出來的就是最小 API :不勾…

Taro小程序采坑記

Taro,京東凹凸實驗室出品的適配多端的一個框架, Taro 是一套遵循 React 語法規范的 多端開發 解決方案。現如今市面上端的形態多種多樣,Web、React-Native、微信小程序等各種端大行其道,當業務要求同時在不同的端都要求有所表現的…

struts入門

struts工作過程: 反射代碼: Class clazz Class.forName("action全路徑"); Method m clazz.getMethod("execute"); Object o m.invoke(); package標簽: 轉發:地址欄不變 修改struts默認常量值: 常…

《Android應用開發攻略》——2.14 備份Android應用程序數據

2.14 備份Android應用程序數據 Pratik Rupwal2.14.1 問題當用戶恢復出廠設置或者改用新的Android設備時,應用程序丟失存儲數據或者應用程序設置。2.14.2 解決方案Android的Backup Manager(備份管理器)能夠在應用程序重新安裝時自動恢復備份數…

C#程序開機啟動與獲取程序啟動路徑

寫windows工具時,要進行電源管理,需要重啟與開關機OS,這樣工具就需要自動啟動。查了網上很多資料,修改注冊列表就可以。 但是,復制幾個網站的代碼并自己修改都發現不行,最后發現腳本之家這段代碼才成功&am…

wpf office 菜單_如何帶回Office 2007中的舊菜單

wpf office 菜單Using the new Ribbon feature in Office 2007 takes time to learn…time you don’t have because projects are stacking up. Today we will look at UBitMenu, a utility that puts the familiar Office 2003 menu into the 2007 ribbon. 使用Office 2007中…

Swagger UI 僅為用戶暴露已授權終結點

前言當需要在生產環境中提供 Swagger UI 時,我們可以通過身份驗證,控制只有授權用戶才能訪問 Swagger UI 頁面。但是我們希望更進一步,每個用戶只能看到授權給他的終結點,而不會暴露其他未授權終結點信息。比如, API 提…

php實現約瑟夫環

function king($high,$size){ $monkey range(1, $high); $i 0 ; while (count($monkey)>1) { $i; $head array_shift($monkey); if(($i % $size) ! 0){ array_push($monkey,$head); } } return $monkey[0];} var_dump(king(10,3));轉載于:https://www.cnblogs.com/lijint…

微軟正式發布Azure Storage上的靜態網站

微軟正式宣布了Azure Storage上的靜態網站,提供了從托管在Azure Storage上的HTML、CSS和JavaScript文件提供內容的能力。靜態網站包含內容固定的Web頁面,同時仍然允許利用JavaScript等客戶端代碼來創建豐富的用戶體驗。 有了這個新功能,繼用于…

帝國國王科技大學上機題解(二)

1.找到字符串中出現次數最少的字符 題目描寫敘述 給定一個字符串(長度小于50) 找到該字符串出現次數最少的字符 假設有兩個字符出現次數同樣,并且均出現最少。那么ASCII碼小的字符優先 輸入 輸入為一行字符串。不含空格 輸出 輸出出現次數最少…

如何在計算機上閱讀漫畫書

Reading and organizing a comic book collection on your computer is efficient and a lot of fun. Today we will look at a couple of free applications that allow you to read your favorite comic books on your computer. 在計算機上閱讀和組織漫畫集非常有效&#xf…

C# WinForm 自啟動/模擬開機自動啟動

遇到重寫啟動步驟,C#調試時顯得比較折騰,既要等待重啟,又要保存當前文件。 讓程序自動重啟模擬這樣電腦重啟步驟,顯得非常方便。在http://bbs.csdn.net/topics/100187453找到下面代碼,直接使用。 ProcessStartInfo p…

工業互聯網平臺實現路徑

我國工業互聯網平臺建設雖然仍處于產業培育期,但是工業互聯網平臺也得到了初期的快速發展,得益于平臺企業的積極投入和各地工業和信息化主管部門的大力推動,從平臺建設推廣的經驗來看,下面談一下個人認為傳統制造企業平臺戰略比較…

Javascript基礎之-Promise

轉載自: http://www.lht.ren/article/3/ Promise是什么呢?根據ecma-262的定義: Promise是一個被用于延時計算的最終結果的占位符 (A Promise is an object that is used as a placeholder for the eventual results of a deferred (and possi…