站長資訊網
最全最豐富的資訊網站

vue內置組件有哪些

vue組件有:1、component,用于渲染一個“元組件”為動態組件。2、transition,用于為單個元素或組件提供動畫過渡效果。3、transition-group,用于為列表中的多個元素或組件提供過渡效果。4、keep-alive,用于緩存包裹在其中的動態切換組件。5、slot。6、teleport,用于將其插槽內容渲染到DOM中的另一個位置。7、Suspense。

vue內置組件有哪些

本教程操作環境:windows7系統、vue3版,DELL G3電腦。

內置組件無需注冊便可以直接在模板中使用。它們也是 tree-shakeable 的:僅在使用時才會包含在構建中。

在渲染函數中使用它們時,需要顯式導入。例如:

import { h, Transition } from 'vue'  h(Transition, {   /* props */ })
登錄后復制

1、component

  • Props:

    isstring | Component

  • 用法:

渲染一個“元組件”為動態組件。依 is 的值,來決定哪個組件被渲染。is 的值是一個字符串,它既可以是 HTML 標簽名稱也可以是組件名稱。

  <!--  動態組件由 vm 實例的 `componentId` property 控制 -->   <component :is="componentId"></component>      <!-- 也能夠渲染注冊過的組件或 prop 傳入的組件-->   <component :is="$options.components.child"></component>      <!-- 可以通過字符串引用組件 -->   <component :is="condition ? 'FooComponent' : 'BarComponent'"></component>      <!-- 可以用來渲染原生 HTML 元素 -->   <component :is="href ? 'a' : 'span'"></component>
登錄后復制

2、transition

  • Props:

    namestring 用于自動生成 CSS 過渡類名。例如:name: 'fade' 將自動拓展為 .fade-enter.fade-enter-active 等。

    appearboolean,是否在初始渲染時使用過渡。默認為 false

    persistedboolean。如果是 true,表示這是一個不真實插入/刪除元素的轉換,而是切換顯示/隱藏狀態。過渡鉤子被注入,但渲染器將跳過。相反,自定義指令可以通過調用注入的鉤子 (例如 v-show) 來控制轉換。

    cssboolean。是否使用 CSS 過渡類。默認為 true。如果設置為 false,將只通過組件事件觸發注冊的 JavaScript 鉤子。

    typestring。指定過渡事件類型,偵聽過渡何時結束。有效值為 "transition""animation"。默認 Vue.js 將自動檢測出持續時間長的為過渡事件類型。

    modestring 控制離開/進入過渡的時間序列。有效的模式有 "out-in""in-out";默認同時進行。

    durationnumber | { enter : number, leave : number }。指定過渡的持續時間。默認情況下,Vue 會等待過渡所在根元素的第一個 transitionendanimationend 事件。

    enter-from-classstring

    leave-from-classstring

    appear-classstring

    enter-to-classstring

    leave-to-classstring

    appear-to-classstring

    enter-active-classstring

    leave-active-classstring

    appear-active-classstring

  • 事件:

    before-enter

    before-leave

    enter

    leave

    appear

    after-enter

    after-leave

    after-appear

    enter-cancelled

    leave-cancelled (僅 v-show)

    appear-cancelled

  • 用法:

<transition> 元素作為單個元素/組件的過渡效果。<transition> 只會把過渡效果應用到其包裹的內容上,而不會額外渲染 DOM 元素,也不會出現在可被檢查的組件層級中。

  <!--  動態組件由 vm 實例的 `componentId` property 控制 -->   <component :is="componentId"></component>      <!-- 也能夠渲染注冊過的組件或 prop 傳入的組件-->   <component :is="$options.components.child"></component>      <!-- 可以通過字符串引用組件 -->   <component :is="condition ? 'FooComponent' : 'BarComponent'"></component>      <!-- 可以用來渲染原生 HTML 元素 -->   <component :is="href ? 'a' : 'span'"></component>
登錄后復制

  const app = Vue.createApp({     ...     methods: {       transitionComplete (el) {         // 因為傳遞了'el'的DOM元素作為參數       }     }     ...   })      app.mount('#transition-demo')
登錄后復制

3、transition-group

  • Props:

    tagstring,默認為 span

    move-class – 覆蓋移動過渡期間應用的 CSS 類。

    除了 mode,其他 attribute 和 <transition> 相同。

  • 事件:

    事件和 <transition> 相同。

  • 用法:

<transition-group> 元素作為多個元素/組件的過渡效果。<transition-group> 渲染一個真實的 DOM 元素。默認渲染 <span>,可以通過 tag attribute 配置哪個元素應該被渲染。

注意,每個 <transition-group> 的子節點必須有獨立的 key,動畫才能正常工作

<transition-group> 支持通過 CSS transform 過渡移動。當一個子節點被更新,從屏幕上的位置發生變化,它會被應用一個移動中的 CSS 類 (通過 name attribute 或配置 move-class attribute 自動生成)。如果 CSS transform property 是“可過渡”property,當應用移動類時,將會使用 FLIP 技術使元素流暢地到達動畫終點。

  <transition-group tag="ul" name="slide">     <li v-for="item in items" :key="item.id">       {{ item.text }}     </li>   </transition-group>
登錄后復制

4、keep-alive

  • Props:

    includestring | RegExp | Array。只有名稱匹配的組件會被緩存。

    excludestring | RegExp | Array。任何名稱匹配的組件都不會被緩存。

    maxnumber | string。最多可以緩存多少組件實例。

  • 用法:

<keep-alive> 包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個抽象組件:它自身不會渲染一個 DOM 元素,也不會出現在組件的父組件鏈中。

當組件在 <keep-alive> 內被切換,它的 activateddeactivated 這兩個生命周期鉤子函數將會被對應執行。

主要用于保留組件狀態或避免重新渲染。

  <!-- 基本 -->   <keep-alive>     <component :is="view"></component>   </keep-alive>      <!-- 多個條件判斷的子組件 -->   <keep-alive>     <comp-a v-if="a > 1"></comp-a>     <comp-b v-else></comp-b>   </keep-alive>      <!-- 和 `<transition>` 一起使用 -->   <transition>     <keep-alive>       <component :is="view"></component>     </keep-alive>   </transition>
登錄后復制

注意,<keep-alive> 是用在其一個直屬的子組件被切換的情形。如果你在其中有 v-for 則不會工作。如果有上述的多個條件性的子元素,<keep-alive> 要求同時只有一個子元素被渲染。

  • includeexclude

The includeexclude prop 允許組件有條件地緩存。二者都可以用逗號分隔字符串、正則表達式或一個數組來表示:

  <!-- 逗號分隔字符串 -->   <keep-alive include="a,b">     <component :is="view"></component>   </keep-alive>      <!-- regex (使用 `v-bind`) -->   <keep-alive :include="/a|b/">     <component :is="view"></component>   </keep-alive>      <!-- Array (使用 `v-bind`) -->   <keep-alive :include="['a', 'b']">     <component :is="view"></component>   </keep-alive>
登錄后復制

匹配首先檢查組件自身的 name 選項,如果 name 選項不可用,則匹配它的局部注冊名稱 (父組件 components 選項的鍵值)。匿名組件不能被匹配。

  • max

最多可以緩存多少組件實例。一旦這個數字達到了,在新實例被創建之前,已緩存組件中最久沒有被訪問的實例會被銷毀掉。

  <keep-alive :max="10">     <component :is="view"></component>   </keep-alive>
登錄后復制

<keep-alive> 不會在函數式組件中正常工作,因為它們沒有緩存實例。

5、slot

  • Props:

    namestring,用于具名插槽

  • 用法:

<slot> 元素作為組件模板之中的內容分發插槽。<slot> 元素自身將被替換。

6、teleport

  • Props:

tostring。需要 prop,必須是有效的查詢選擇器或 HTMLElement (如果在瀏覽器環境中使用)。指定將在其中移動 <teleport> 內容的目標元素

  <!-- 正確 -->   <teleport to="#some-id" />   <teleport to=".some-class" />   <teleport to="[data-teleport]" />      <!-- 錯誤 -->   <teleport to="h1" />   <teleport to="some-string" />
登錄后復制

disabledboolean。此可選屬性可用于禁用 <teleport> 的功能,這意味著其插槽內容將不會移動到任何位置,而是在您在周圍父組件中指定了 <teleport> 的位置渲染。

  <teleport to="#popup" :disabled="displayVideoInline">     <video src="./my-movie.mp4">   </teleport>
登錄后復制

請注意,這將移動實際的 DOM 節點,而不是被銷毀和重新創建,并且它還將保持任何組件實例的活動狀態。所有有狀態的 HTML 元素 (即播放的視頻) 都將保持其狀態。

7、Suspense

用于協調對組件樹中嵌套的異步依賴的處理。

  • Props

interface SuspenseProps {   timeout?: string | number }
登錄后復制

  • 事件

    @resolve

    @pending

    @fallback

  • 詳細信息

<Suspense> 接受兩個插槽:#default 和 #fallback。它將在內存中渲染默認插槽的同時展示后備插槽內容。

如果在渲染時遇到異步依賴項 (異步組件和具有 async setup() 的組件),它將等到所有異步依賴項解析完成時再顯示默認插槽。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
99re6这里只有精品视频| 久久久久成人精品无码| 最新国产成人亚洲精品影院| 久久精品国产2020观看福利| 久久99精品久久久久久秒播| 日韩亚洲翔田千里在线 | 日韩精品专区AV无码| 337P日本欧洲亚洲大胆精品 | 国产精品理论电影| 亚洲AV无码成人精品区日韩| 91精品免费国产高清在线| 91精品啪在线观看国产18| 久久99精品一久久久久久| 中文字幕日本精品一区二区三区| 亚洲精品成人区在线观看| 人成精品视频三区二区一区| 精品一区二区三区电影| 精品无码一区二区三区水蜜桃| 日韩精品福利片午夜免费观着| 日韩精品免费在线视频| 国产亚洲精品国产福利在线观看| 日韩久久精品一区二区三区| 国产精品一区二区香蕉| 久久精品男人影院| 一本大道无码日韩精品影视_| 精品国产福利在线观看一区| 国内精品国语自产拍在线观看91| 国产精品夜夜春夜夜爽久久小 | 亚洲?V无码乱码国产精品| 亚洲日韩AV一区二区三区四区 | 99re在线视频精品| 精品无码久久久久国产| 中文字幕精品一区二区日本| 久久精品.com| 日本内射精品一区二区视频| 久久综合国产乱子伦精品免费| 久久免费的精品国产V∧| 99re6这里有精品热视频在线| 2022国产精品视频| 久久精品国产99国产精品亚洲| 91精品视频免费|