中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue作用域分為什么及怎么實現

發布時間:2022-11-15 09:29:01 來源:億速云 閱讀:94 作者:iii 欄目:開發技術

這篇文章主要介紹“vue作用域分為什么及怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“vue作用域分為什么及怎么實現”文章能幫助大家解決問題。

1. 全局作用域

Vue 應用程序中的全局作用域與任何編程語言中的全局作用域類似,這些變量在應用程序中的任何地方都是可用的。

可以把全局作用域看作應用程序作用域,因為它將作用域限制為整個應用程序。

使用全局作用域

使用全局作用域的主要方式是向Vue原型添加一個值:

Vue.prototype.$globalValue = 'Global Scope!';

通過將其添加到 Vue 對象的原型中,可以在應用程序的每個組件上自動使用它。可以像這樣直接從組件訪問它:

export default {   mounted() {     console.log(this.$globalValue);  // 'Global Scope!'   }, };

使用$作為這些變量的前綴是一種標準做法,因此我們知道它們是全局值,而不是每個組件唯一的。

Vue、vue-router和vuex(以及許多其他庫)都使用這種技術來定義全局值。例如,來自vue-router的$route對象是這樣一個全局作用域的變量。

2. 子樹作用域

大多數時候,全局范圍有點像大錘,我們需要一些更精確的東西。子樹作用域中的變量作用域是應用程序的特定部分,而不是整個應用程序。

此級別的作用域可能是最少使用的,但是在確實需要使用時非常方便。通常,一組組件需要共享很多相同的數據,并且通過props傳遞數據非常繁瑣。

此作用域最適合用于共享上下文信息,這些上下文信息可以根據組件在應用程序中的位置進行更改,可以是這樣的:

  • 本地狀態和數據-如果只有一小部分應用程序需要使用 Vuex,則無需使用  Vuex。如果使用props傳遞會變得繁瑣且麻煩,此時,子樹作用域可能是我們最好的選擇。

  • 配置-有時我們需要組件以某種特定方式運行,但僅在應用程序的一部分中運行。例如,注冊表單中的所有Input組件都需要驗證,但是我們不想在整個應用程序中都要求驗證。

使用子樹作用域:

子樹作用域是通過使用provide和inject創建的。我們提供希望可用于整個子樹的值,然后將它們注入需要它們的組件中。

3. 組件作用域

更具體一點,組件作用域使變量可用于單個組件。但是這不應該與更具體的實例作用域相混淆。

如果一個變量具有組件作用域,那么它就是一個組件的所有實例都可以使用的單個變量。我們可以擁有幾個相同的組件,并且它們都能夠訪問相同的變量。

你可能熟悉 JS  中的模塊作用域。在單個模塊或文件中定義的任何內容都屬于相同的模塊作用域。由于組件是在單個文件中定義的,所以組件中的所有內容都在相同的模塊作用域內。

使用組件作用域:

要使用組件作用域,我們需要在與組件相同的文件中定義一個變量:

vue作用域分為什么及怎么實現

在此組件中渲染的變量componentScope是相同的變量,不管使用此組件多少次,componentScope 始終只有一個,沒有多個副本。

如果此組件的一個實例修改了componentScope的值,則該組件的每個其他實例都會更改。不應使用這種方式在組件之間進行通信,但這是共享數據的一種好方法。

4. 實例作用域

實例作用域是我們可以獲得的Vue作用域變量最常見形式,具有實例作用域的任何變量僅可用于組件的特定用法。我們通常將其稱為內部狀態,有時也稱為局部狀態。

使用實例作用域:

無論何時使用data()函數或使用computed props,都是在使用實例作用域。

甚至直接向組件實例添加屬性也可以達到以下效果:

someMethod() {   this.newProperty = 'Instance scope'; }

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。

關于“vue作用域分為什么及怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

云霄县| 宁河县| 黔江区| 平南县| 固阳县| 库尔勒市| 定边县| 罗江县| 陈巴尔虎旗| 新安县| 镇雄县| 牙克石市| 瑞昌市| 息烽县| 手游| 长春市| 阿拉善左旗| 晋江市| 宜章县| 崇州市| 开封市| 偏关县| 怀柔区| 古丈县| 禹城市| 达拉特旗| 东乡族自治县| 永宁县| 邵阳市| 伊宁市| 闽清县| 呼图壁县| 丰城市| 娄烦县| 东阿县| 山阳县| 漠河县| 阳朔县| 城固县| 大同县| 清徐县|