欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3中Teleport和Suspense的具體使用

 更新時間:2023年07月26日 10:45:17   作者:jieyucx  
本文主要介紹了vue3中Teleport和Suspense的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、Teleport

Vue.js 3.0 的新功能之一是 Teleport。因為有時,你可能需要將組件的一部分渲染到 DOM 樹中的一個不同位置,而不是作為組件的直接子節(jié)點渲染。這就是Teleport的用途。

例如,模態(tài)對話框、提示、通知等都可能使用 Teleport。通常情況下,你可能想要將這些內容添加到應用的根或者 body 標簽下,而不是嵌套在深層的 UI 結構里。Vue 3 中的 Teleport 提供了這樣的機會,就是不管你的組件在哪里,你都可以將其子組件轉移到DOM的任何位置。

在模板中,Teleport 的使用方法如下:

<teleport to="body">
  <div class="modal">
    <!-- 具體內容 -->
  </div>
</teleport>

'body' 是要傳送組件的目標元素的選擇器。你可以用任何有效的 CSS 選擇器替換它。

以上面的模態(tài)框為例,一般的寫法可能是:

<div class="parent">
   <div class="child">
      <div class="modal" v-if="showModal">
        I am a modal!
      </div>
   </div>
</div>

但如果使用teleport,就可以將modal獨立出來:

<div class="parent">
   <div class="child">
         <teleport to="body">
          <div class="modal" v-if="showModal">
            I am a modal!
          </div>
      </teleport>
   </div>
</div>

這樣,無論在DOM樹的何處調用模態(tài)框,模態(tài)框始終會被渲染到 body 元素下,這可以避免由于 CSS層疊上下文和 z-index 問題造成的樣式問題。

二、Suspense

<Suspense> 是 Vue 3 中的一個新特性,它能夠處理組件中的異步依賴并在等待過程中提供備用內容。

當我們使用異步組件時,組件需要一些時間來加載。在加載完成之前,我們通常會向用戶展示一些加載狀態(tài)。以前,我們需要在組件內部自己處理這個邏輯。但是現(xiàn)在,有了<Suspense>,我們可以將這個邏輯提升到組件外部。

Suspense 組件有兩個插槽: default 插槽和 fallback 插槽。default 插槽用于放置那些可能含有異步依賴的組件,而 fallback 插槽則用于展示加載狀態(tài)。

下面是一個使用示例:

<template>
? <Suspense>
? ? <template v-slot:default>
? ? ? <Child />
? ? </template>
? ? <template v-slot:fallback>
? ? ? <div>Loading...</div>
? ? </template>
? </Suspense>
</template>
<script>
// import Child from './components/Child'//靜態(tài)引入
?? ?import {defineAsyncComponent} from 'vue'?
?? ?const Child = defineAsyncComponent(()=>import('./components/Child')) //異步引入
?? ?export default {
?? ??? ?name:'App',
?? ??? ?components:{Child},
?? ?}
</script>

在以上代碼中,Child 是一個異步組件。當這個組件正在加載時,Suspense 會自動切換到fallback插槽,并顯示 “Loading…”。當組件加載完成后,Suspense 則會切換回default插槽,顯示加載完成的組件。

Suspense 能讓我們更方便地控制異步組件的加載狀態(tài),讓代碼看起來更加清晰,使我們能夠將更多的精力集中在處理業(yè)務邏輯上。

三、nextTick

$nextTick 是 Vue.js 提供的一個全局API,它用于延遲執(zhí)行一段代碼,延遲到下一次 DOM 更新循環(huán)之后。這在修改數(shù)據(jù)之后立即操作 DOM 結構時非常有用。

使用 $nextTick 的基本方式如下:

this.someData = 'new value'
this.$nextTick(function () {
  // DOM 更新后的代碼
})

例如,想象一下我們有一個 Vue.js 組件,它有一個列表。點擊一個按鈕將在列表中添加一個新的 item,然后我們想要滾動到這個新創(chuàng)建的 item。如果我們不使用 $nextTick,DOM可能會在我們嘗試訪問新元素之前還沒有被更新。

舉例來說:

new Vue({
? // ...
? data: {
? ? items: ['item 1', 'item 2', 'item 3'],
? },
? methods: {
? ? addItem() {
? ? ? this.items.push(`item ${this.items.length + 1}`);
? ? ? this.$nextTick(() => {
? ? ? ? const list = this.$el.querySelector('ul');
? ? ? ? list.scrollTop = list.scrollHeight;
? ? ? });
? ? },
? },
? // ...
})

在這個例子中,我們首先更新了 items 數(shù)據(jù),然后使用 $nextTick 等待 Vue.js 更新 DOM。當回調函數(shù)被調用時,我們知道新的 item 已經(jīng)被添加到了 DOM,然后我們滾動列表確保新 item 可以被用戶看到。如果我們沒有使用 $nextTick,list.scrollHeight 可能不會包含新 item,所以滾動操作可能不會如我們預期的那樣工作。

到此這篇關于vue3中Teleport和Suspense的具體使用的文章就介紹到這了,更多相關vue3 Teleport Suspense內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • element表格翻頁第2頁從1開始編號(后端從0開始分頁)

    element表格翻頁第2頁從1開始編號(后端從0開始分頁)

    這篇文章主要介紹了element表格翻頁第2頁從1開始編號(后端從0開始分頁),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 關于Vue中的計算屬性和監(jiān)聽屬性詳解

    關于Vue中的計算屬性和監(jiān)聽屬性詳解

    這篇文章主要介紹了關于Vue中的計算屬性和監(jiān)聽屬性詳解,Vue.js模板內的表達式非常便利,但是設計它們的初衷是用于簡單運算的,在模板內放入過長的或復雜的邏輯時,會讓模板過重且難以維護,需要的朋友可以參考下
    2023-05-05
  • vue配置文件實現(xiàn)代理v2版本的方法

    vue配置文件實現(xiàn)代理v2版本的方法

    這篇文章主要介紹了vue配置文件實現(xiàn)代理v2版本的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • vue項目啟動端口更改的實現(xiàn)

    vue項目啟動端口更改的實現(xiàn)

    在Vue前端項目中,可以通過修改配置文件來指定啟動的端口號,本文就來介紹 一下vue項目啟動端口更改的實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Vuex數(shù)據(jù)持久化的兩種方式:手動存儲和vuex-persistedstate插件詳解

    Vuex數(shù)據(jù)持久化的兩種方式:手動存儲和vuex-persistedstate插件詳解

    這篇文章主要介紹了Vuex數(shù)據(jù)持久化的兩種方式:手動存儲和vuex-persistedstate插件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 在vue中解決提示警告 for循環(huán)報錯的方法

    在vue中解決提示警告 for循環(huán)報錯的方法

    今天小編就為大家分享一篇在vue中解決提示警告 for循環(huán)報錯的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vuex中Modules的使用詳解

    vuex中Modules的使用詳解

    本文主要介紹了vuex中Modules的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Vue中的el-date-picker時間選擇器的使用實例詳解

    Vue中的el-date-picker時間選擇器的使用實例詳解

    el-date-picker是Element UI框架中提供的日期選擇器組件,它支持單個日期、日期范圍、時間、日期時間等多種選擇方式,本文給大家介紹Vue中的el-date-picker時間選擇器的使用,感興趣的朋友一起看看吧
    2023-10-10
  • vue本地構建熱更新卡頓的問題“75?advanced?module?optimization”完美解決方案

    vue本地構建熱更新卡頓的問題“75?advanced?module?optimization”完美解決方案

    這篇文章主要介紹了vue本地構建熱更新卡頓的問題“75?advanced?module?optimization”解決方案,每次熱更新都會卡在?"75?advanced?module?optimization"?的地方不動了,如何解決這個問題呢,下面小編給大家?guī)砹私鉀Q方案,需要的朋友可以參考下
    2022-08-08
  • 基于Vue中的父子傳值問題解決

    基于Vue中的父子傳值問題解決

    這篇文章主要介紹了基于Vue中的父子傳值問題解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論