日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

總結了十個Vue3超級實用但是很冷門的API

來源: 責編: 時間:2024-01-16 17:32:41 293觀看
導讀今天給大家分享幾個很少人用,但是又非常有用的 Vue3 的 API,廢話不多說,往下看吧。文章提示:下文的無效 不觸發視圖 不觸發響應式更新 不被追蹤 這些詞匯,想表達的意思是一樣的,意思都是不被追蹤。readonly顧名思義,就是只讀

今天給大家分享幾個很少人用,但是又非常有用的 Vue3 的 API,廢話不多說,往下看吧。j4g28資訊網——每日最新資訊28at.com

文章提示:下文的無效 不觸發視圖 不觸發響應式更新 不被追蹤 這些詞匯,想表達的意思是一樣的,意思都是不被追蹤。j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

readonly

顧名思義,就是只讀的意思,如果你的數據被這個 API 包裹住的話,那么修改之后并不會觸發響應式,并且會提示警告:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

readonly 的用途一般用于一些 hooks 暴露出來的變量,不想外界去修改,比如我封裝一個 hooks,這樣去做的話,那么外界只能用變量,但是不能修改變量,這樣大大保護了 hooks 內部的邏輯:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

shallowRef

shallowRef 用來包住一個基礎類型或者引用類型,如果是基礎類型那么跟 ref 基本沒區別,如果是引用類型的話,那么直接改深層屬性是不能觸發響應式的,除非直接修改引用地址,如下:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

注意:改深層屬性能改數據,只是沒觸發響應式,所以當下一次響應式觸發的時候,你修改的深層數據會渲染到頁面上。j4g28資訊網——每日最新資訊28at.com

shallowRef 的用處主要用于一些比較大的但又變化不大的數據,比如我有一個表格數據,通過接口直接獲取,并且主要用在前端展示,需要修改一些深層的屬性,但是這些屬性并不需要立即表現在頁面上,比如以下例子,我只需要展示 name、age 字段,至于 isOld 字段并不需要展示,我想要計算 isOld 但是又不想觸發響應式更新,所以可以用 shallowRef 包起來,進而減少響應式更新,優化性能。j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

shallowReactive

shallowReactive 用來包住一個引用類型,被包住后,修改第一層才會觸發響應式更新,也就是淺層的屬性,修改深層的屬性并不會觸發響應式更新。j4g28資訊網——每日最新資訊28at.com

注意:改深層屬性能改數據,只是沒觸發響應式,所以當下一次響應式觸發的時候,你修改的深層數據會渲染到頁面上:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

shallowReactive 用的比較少,shallowReactive 的用處跟 shallowRef 比較像,都是為了讓一些比較大的數據能減少響應式更新,進而優化性能。j4g28資訊網——每日最新資訊28at.com

toRef & toRefs

先說說 toRef 吧,我們平時在使用 reactive 的時候會有一個苦惱,那就是解構,比如看以下例子,我們為了少些一些代碼,解構出來了 name 并放到模板里渲染,但是當我們想改原數據的時候,發現 name 并不會更新,這就是解構出來基礎類型的苦惱。j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

這時我們可以使用 toRef,這個時候我們直接修改 name 也會觸發原數據的修改,修改原數據也會觸發 name 的修改:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

但是如果是屬性太多了,我們想一個一個去用 toRef 的話會寫很多代碼:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

所以我們可以使用 toRefs 一次性解構:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

toRaw & markRaw & unref

toRaw 可以把一個響應式 reactive 轉成普通對象,也就是把響應式對象轉成非響應式對象:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

toRaw 主要用在回調傳參中,比如我封裝一個 hooks,我想要把 hooks 內維護的響應式變量轉成普通數據,當做參數傳給回調函數,可以用 toRaw:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

markRaw 可以用來標記響應式對象里的某個屬性不被追蹤,如果你的響應式對象里有某個屬性數據量比較大,但又不想被追蹤,你可以使用 markRaw:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

unref 相當于返回 ref 的 value:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

effectScope & onScopeDispose

effectScope 可以有兩個作用:j4g28資訊網——每日最新資訊28at.com

  • 收集副作用
  • 全局狀態管理

(1) 收集副作用j4g28資訊網——每日最新資訊28at.com

比如我們封裝一個共用的 hooks,為了減少頁面隱患,肯定會統一收集副作用,并且在組件銷毀的時候去統一消除,比如以下代碼:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

但是這么收集很麻煩, effectScope 能幫我們做到統一收集,并且通過 stop 方法來進行清除,且 stop 執行的時候會觸發 effectScope 內部的 onScopeDispose:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

我們可以利用 effectScope & onScopeDispose 來做一些性能優化,比如下面這個例子,我們封裝一個鼠標監聽的 hooks:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

但是如果在頁面里調用多次的話,那么勢必會往 window 身上監聽很多多余的事件,造成性能負擔,所以解決方案就是,無論頁面里調用再多次 useMouse,我們只往 window 身上加一個鼠標監聽事件:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

(2) 全局狀態管理j4g28資訊網——每日最新資訊28at.com

現在 Vue3 最火的全局狀態管理工具肯定是 Pinia 了,那么你們知道 Pinia 的原理是什么嗎?原理就是依賴了 effectScope:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

所以我們完全可以自己使用 effectScope 來實現自己的局部狀態管理,比如我們封裝一個通用組件,這個組件層級比較多,并且需要共享一些數據,那么這個時候肯定不會用 Pinia 這種全局狀態管理,而是會自己寫一個局部的狀態管理,這個時候 effectScope 就可以排上用場了。j4g28資訊網——每日最新資訊28at.com

vueuse 中的 createGlobalState 就是為了這個而生:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com

provide & inject

Vue3 用來提供注入的 API,主要是用在組件的封裝,比如那種層級較多的組件,且子組件需要依賴父組件甚至爺爺組件的數據,那么可以使用 provide & inject,最典型的例子就是 Form 表單組件,可以去看看各個組件庫的源碼,表單組件大部分都是用 provide & inject 來實現的,比如 Form、Form-Item、Input這三個需要互相依賴對方的規則、字段名、字段值,所以用 provide & inject 會更好。具體用法看文檔吧~https://cn.vuejs.org/guide/components/provide-inject.html:j4g28資訊網——每日最新資訊28at.com

j4g28資訊網——每日最新資訊28at.com


j4g28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-62789-0.html總結了十個Vue3超級實用但是很冷門的API

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 花 15 分鐘把 Express.js 搞明白,全棧沒有那么難

下一篇: 2023 年頂級前端工具,你都用了哪些呢?

標簽:
  • 熱門焦點
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協調和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現手段有以下幾種方式:Object 類下
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • Java NIO內存映射文件:提高文件讀寫效率的優秀實踐!

    Java的NIO庫提供了內存映射文件的支持,它可以將文件映射到內存中,從而可以更快地讀取和寫入文件數據。本文將對Java內存映射文件進行詳細的介紹和演示。內存映射文件概述內存
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 榮耀Magicbook V 14 2021曙光藍版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續還將開展常態化登記。  北京科技教育體驗基
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美日韩人人澡狠狠躁视频| 久久精品99国产精品酒店日本| 伊人久久大香线蕉av超碰演员| 黄色成人av| 亚洲国产成人不卡| 一区二区三区久久网| 亚洲欧美三级在线| 久久久综合激的五月天| 欧美激情精品| 国产精品欧美在线| 亚洲电影免费| 亚洲一区二区三区午夜| 久久久精品一区| 欧美日韩ab| 国产亚洲亚洲| 99成人精品| 久久久久久9| 欧美天堂亚洲电影院在线播放| 国产午夜精品久久久| 亚洲三级电影在线观看 | 一二三区精品福利视频| 欧美一区成人| 欧美精品1区2区3区| 国产视频不卡| 亚洲九九九在线观看| 久久gogo国模裸体人体| 欧美巨乳在线观看| 狠狠色丁香婷婷综合影院| 亚洲最新视频在线播放| 久久久久久久久岛国免费| 欧美视频在线观看视频极品| **性色生活片久久毛片| 亚洲欧美视频一区二区三区| 欧美激情片在线观看| 国产一区二区三区av电影| 亚洲视频中文字幕| 欧美成人综合| 今天的高清视频免费播放成人| 亚洲视频第一页| 欧美成人性网| 国产在线精品一区二区中文| 亚洲综合第一页| 欧美激情综合在线| 在线观看欧美亚洲| 久久国产精品久久久久久久久久 | 欧美中文字幕在线观看| 欧美三区美女| 亚洲三级性片| 裸体歌舞表演一区二区| 国产亚洲毛片在线| 亚洲欧美日韩精品一区二区| 欧美日韩国产系列| 亚洲黄网站黄| 美国三级日本三级久久99| 国产手机视频一区二区| 亚洲一区二区高清视频| 欧美日韩国产成人精品| 亚洲精品国产无天堂网2021| 免费视频亚洲| 在线观看成人小视频| 欧美一级大片在线观看| 国产精品美女久久久浪潮软件| 一本一本久久| 欧美精品一线| 亚洲开发第一视频在线播放| 欧美不卡在线| 亚洲第一天堂av| 久久综合99re88久久爱| 伊人狠狠色j香婷婷综合| 久久精品国产清自在天天线| 国产精品免费一区二区三区在线观看 | 久久久久国产精品一区| 国产亚洲精品美女| 欧美在线网址| 国内自拍视频一区二区三区| 久久久精品一区| 狠狠v欧美v日韩v亚洲ⅴ| 久久精品女人| 激情视频一区| 久久午夜电影网| 欲色影视综合吧| 免播放器亚洲| 最新国产成人在线观看| 欧美激情一二三区| 99国产精品| 欧美日韩一区二区视频在线观看| 一区二区三区免费网站| 欧美日韩一区高清| 亚洲一区视频| 国产三级欧美三级| 久久久久久久久久码影片| 樱桃国产成人精品视频| 欧美va日韩va| 日韩一级免费观看| 欧美天堂亚洲电影院在线观看| 亚洲一区二区成人在线观看| 国产精品一区=区| 久久精品亚洲精品| 亚洲福利视频三区| 欧美日韩精品综合| 亚洲综合二区| 韩国av一区| 欧美顶级大胆免费视频| 亚洲最新色图| 国产欧美 在线欧美| 久久久99爱| 亚洲三级视频| 国产精品日日摸夜夜添夜夜av| 欧美在线看片| 亚洲国产专区校园欧美| 欧美日韩中文另类| 欧美一区二区三区四区在线观看| 伊人影院久久| 欧美日韩天天操| 欧美一区影院| 亚洲欧洲视频| 国产精品日韩欧美一区二区三区| 久久久综合网站| 一区二区三区回区在观看免费视频| 国产美女高潮久久白浆| 久久久久一区| av72成人在线| 国外成人在线视频网站| 欧美啪啪一区| 久久国产成人| 亚洲最新在线视频| 国产午夜精品一区二区三区视频 | 久久影视三级福利片| 一区二区三区视频在线观看| 国产欧美日韩三区| 欧美大色视频| 性欧美video另类hd性玩具| 亚洲高清视频在线| 欧美性猛交视频| 久久亚洲色图| 亚洲一区二区三区免费观看 | 欧美在线免费观看视频| 亚洲黄色高清| 国产精品综合色区在线观看| 免费在线日韩av| 亚洲欧美一区二区三区久久| 亚洲韩国精品一区| 国产亚洲欧美中文| 欧美日韩综合在线| 久热精品在线| 香蕉成人久久| 99国产精品| 亚洲国产精品悠悠久久琪琪| 国产精品视频久久| 欧美精品videossex性护士| 欧美专区第一页| 在线亚洲美日韩| 亚洲高清影视| 国产视频一区在线观看| 欧美日韩精品一区二区在线播放 | 国产美女精品免费电影| 欧美另类视频在线| 久久人人精品| 午夜日韩av| 在线一区欧美| 亚洲欧洲日本国产| 国产午夜精品全部视频在线播放| 欧美日韩另类在线| 欧美ab在线视频| 久久九九精品99国产精品| 亚洲综合欧美日韩| 一本色道久久加勒比88综合| 亚洲国产导航| 激情婷婷欧美| 国产亚洲在线观看| 国产精品视频xxx| 欧美日韩综合在线| 欧美激情一区二区三区成人| 久久先锋资源| 久久精品中文| 欧美一区二区观看视频| 亚洲一区二区三区涩| 日韩一级欧洲| 日韩一区二区久久| 亚洲日本欧美| 亚洲精品国产欧美| 亚洲国产美女精品久久久久∴| 国模套图日韩精品一区二区| 国产精品尤物福利片在线观看| 欧美视频一区二区在线观看 | 亚洲国产精品福利| 黄色一区二区三区四区| 国产偷久久久精品专区| 国产乱码精品一区二区三区五月婷 | 蜜桃av一区二区在线观看| 久久精品中文| 久久久久五月天| 久久视频国产精品免费视频在线| 欧美一区二区三区免费视频| 亚洲欧洲av一区二区三区久久| 亚洲欧美清纯在线制服| 亚洲综合视频网| 午夜精品www| 欧美一区午夜视频在线观看| 欧美在线免费观看| 久久精品国产91精品亚洲| 久久精品国产一区二区电影| 久久精品亚洲一区二区| 久久久亚洲人|