欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          vuejs中內(nèi)置組件有哪些

          vuejs中內(nèi)置組件有:“<component/>”、“<keep-alive>”、“<transition/>”、“<transition-group/>”、“<slot/>”、“<teleport/>”。

          vuejs中內(nèi)置組件有哪些

          本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。

          vue 內(nèi)置組件

          內(nèi)置組件可以直接在模板中使用,而不需注冊(cè)。

          <keep-alive>、<transition>、<transition-group> 和 <teleport> 組件都可以被打包工具 tree-shake。所以它們只會(huì)在被使用的時(shí)候被引入。如果你需要直接訪問它們,也可以將它們顯性導(dǎo)入。

          // Vue 的 CDN 構(gòu)建版本 const { KeepAlive, Teleport, Transition, TransitionGroup } = Vue
          // Vue 的 ESM 構(gòu)建版本 import { KeepAlive, Teleport, Transition, TransitionGroup } from 'vue'

          <component> 和 <slot> 是模板語法中組件形式的特性。它們不是真正的組件且無法像上述組件那樣被導(dǎo)入。

          下面給大家簡(jiǎn)單介紹一下vuejs中的內(nèi)置組件。

          <component/>

          多應(yīng)用與創(chuàng)建動(dòng)態(tài)組件
          參數(shù)有 is 和inline-template,前者多為字符串或自定義組件,后者為布爾類型,

          代碼示例

          <template>   <div class="hello">       <!-- 構(gòu)建動(dòng)態(tài)組件 -->       <div :is="currentComp"></div>       <!-- 按鈕點(diǎn)擊切換組件 -->       <button v-on:click="changeComponent">改變組件</button>   </div> </template>  <script> //兩個(gè)自定義的組件 import login from '../components/login.vue' import index from '../components/index.vue' export default {   name: 'BuildInComponent',   components:{       index,       login   },   // 默認(rèn)顯示index組件   data(){       return {           currentComp:index       }   },   methods:{       changeComponent(){           if(this.currentComp == login){               this.currentComp = index           }else {               this.currentComp = login           }        }   } } </script>

          <keep-alive>

          <keep-alive> 包裹動(dòng)態(tài)組件時(shí),會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個(gè)抽象組件:它自身不會(huì)渲染一個(gè) DOM 元素,也不會(huì)出現(xiàn)在父組件鏈中。
          此組件上的屬性有 include,exclude,max,前兩者為字符串或這則表達(dá)式,緩存/不緩存匹配到的組件,max表示最多可以緩存的組件數(shù)目。
          匹配首先檢查組件自身的 name 選項(xiàng),如果 name 選項(xiàng)不可用,則匹配它的局部注冊(cè)名稱 (父組件 components 選項(xiàng)的鍵值)。匿名組件不能被匹配。
          此組件通常與v-show,v-if,v-else-if,v-else,is等包含條件的組件結(jié)合使用

          代碼示例

          <template>   <div class="hello">       <!-- 使用keep-alive組件包裹其它條件渲染組件,不符合條件的則會(huì)被緩存,等下次條件成立時(shí),則會(huì)立即渲染,提高渲染效率 -->       <keep-alive>           <div v-if="condition == 1">               <span>我是111111111111</span>           </div>           <div v-else-if="condition == 2">               <span>我是222222222222222</span>           </div>           <div v-else>               <span>我是333333333333</span>           </div>       </keep-alive>    </div> </template>  <script> export default {   name: 'BuildInComponent',   data(){       return {           condition:parseInt(Math.random()*3)       }   },        } </script>

          <transition/>

          添加被包裹元素的過渡效果,<transition> 元素作為單個(gè)元素/組件的過渡效果。<transition> 只會(huì)把過渡效果應(yīng)用到其包裹的內(nèi)容上,而不會(huì)額外渲染 DOM 元素,也不會(huì)出現(xiàn)在檢測(cè)過的組件層級(jí)中。
          通常與v-show v-if is等組合使用;
          有css過渡和js過渡
          常用屬性:name:字符串,用于自動(dòng)生成 CSS 過渡類名;css:布爾類型,是否使用 CSS 過渡類。默認(rèn)為 true。如果設(shè)置為 false,將只通過組件事件觸發(fā)注冊(cè)的 JavaScript 鉤子
          還可以通過enter-class,leave-class等屬性,自定義類名,通常在和第三方的動(dòng)畫庫時(shí)結(jié)合使用;

          • css過渡

            css過渡的類名有transition屬性的name屬性值(記作v,若沒有name屬性值,則默認(rèn)為v-),組合以下幾種構(gòu)成:

            1. v-enter:定義進(jìn)入過渡的開始狀態(tài)。在元素被插入之前生效,在元素被插入之后的下一幀移除。
            2. v-enter-active:定義進(jìn)入過渡生效時(shí)的狀態(tài)。在整個(gè)進(jìn)入過渡的階段中應(yīng)用,在元素被插入之前生效,在過渡/動(dòng)畫完成之后移除。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。
            3. v-enter-to: 2.1.8版及以上 定義進(jìn)入過渡的結(jié)束狀態(tài)。在元素被插入之后下一幀生效 (與此同時(shí) v-enter 被移除),在過渡/動(dòng)畫完成之后移除。
            4. v-leave: 定義離開過渡的開始狀態(tài)。在離開過渡被觸發(fā)時(shí)立刻生效,下一幀被移除。
            5. v-leave-active:定義離開過渡生效時(shí)的狀態(tài)。在整個(gè)離開過渡的階段中應(yīng)用,在離開過渡被觸發(fā)時(shí)立刻生效,在過渡/動(dòng)畫完成之后移除。這個(gè)類可以被用來定義離開過渡的過程時(shí)間,延遲和曲線函數(shù)。
            6. v-leave-to: 2.1.8版及以上 定義離開過渡的結(jié)束狀態(tài)。在離開過渡被觸發(fā)之后下一幀生效 (與此同時(shí) v-leave 被刪除),在過渡/動(dòng)畫完成之后移除。

          代碼示例

          <template>   <div class="hello">       <!-- css過渡示例,transition組件 名稱為slide-fade, -->       <div id="example-1">         <button @click="show = !show">             Toggle render         </button>         <transition name="slide-fade">             <p v-if="show">hello</p>         </transition>       </div>         <!-- css動(dòng)畫示例 -->       <div id="example-2">         <button @click="show = !show">Toggle show</button>         <transition name="bounce">             <p v-if="show">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris facilisis enim libero, at lacinia diam fermentum id. Pellentesque habitant morbi tristique senectus et netus.</p>         </transition>       </div>    </div> </template>  <script> export default {   name: 'BuildInComponent',   data(){       return {           show: true       }   }, } </script>  <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> /* 可以設(shè)置不同的進(jìn)入和離開動(dòng)畫 */ /* 設(shè)置持續(xù)時(shí)間和動(dòng)畫函數(shù) */ .slide-fade-enter-active {   transition: all .3s ease; } .slide-fade-leave-active {   transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); } .slide-fade-enter, .slide-fade-leave-to /* .slide-fade-leave-active for below version 2.1.8 */ {   transform: translateX(10px);   opacity: 0; }  /* 也可以使用css動(dòng)畫 */ .bounce-enter-active {   animation: bounce-in .5s; } .bounce-leave-active {   animation: bounce-in .5s reverse; } @keyframes bounce-in {   0% {     transform: scale(0);   }   50% {     transform: scale(1.5);   }   100% {     transform: scale(1);   } } </style>
          • js過渡

          也可以在屬性中聲明 JavaScript 鉤子函數(shù),在鉤子函數(shù)中,使用js進(jìn)行動(dòng)畫的操作;
          當(dāng)只用 JavaScript 過渡的時(shí)候,在 enter 和 leave 中必須使用 done 進(jìn)行回調(diào)。否則,它們將被同步調(diào)用,過渡會(huì)立即完成
          對(duì)于僅使用 JavaScript 過渡的元素添加 v-bind:css=“false”,Vue 會(huì)跳過 CSS 的檢測(cè)。這也可以避免過渡過程中 CSS 的影響。

          // 使用js過渡,通常在組件中監(jiān)聽事件,并寫好監(jiān)聽到的回調(diào)函數(shù)即可<transition   v-on:before-enter="beforeEnter"   v-on:enter="enter"   v-on:after-enter="afterEnter"   v-on:enter-cancelled="enterCancelled"    v-on:before-leave="beforeLeave"   v-on:leave="leave"   v-on:after-leave="afterLeave"   v-on:leave-cancelled="leaveCancelled">   <!-- ... --></transition>

          <transition-group/>

          Props:

          • tag – string – 如果未定義,則不渲染動(dòng)畫元素。

          • move-class – 覆蓋移動(dòng)過渡期間應(yīng)用的 CSS 類。

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

          事件:

          • 事件和 <transition> 相同。

          用法:

          <transition-group> 提供了多個(gè)元素/組件的過渡效果。默認(rèn)情況下,它不會(huì)渲染一個(gè) DOM 元素包裹器,但是可以通過 tag attribute 來定義。

          注意,每個(gè) <transition-group> 的子節(jié)點(diǎn)必須有獨(dú)立的 key,動(dòng)畫才能正常工作。

          <transition-group> 支持通過 CSS transform 過渡移動(dòng)。當(dāng)一個(gè)子節(jié)點(diǎn)被更新,從屏幕上的位置發(fā)生變化,它會(huì)被應(yīng)用一個(gè)移動(dòng)中的 CSS 類 (通過 name attribute 或配置 move-class attribute 自動(dòng)生成)。如果 CSS transform property 是“可過渡” property,當(dāng)應(yīng)用移動(dòng)類時(shí),將會(huì)使用 FLIP 技術(shù)使元素流暢地到達(dá)動(dòng)畫終點(diǎn)。

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

          <slot/>

          vue的內(nèi)容分發(fā)非常適合“固定部分+動(dòng)態(tài)部分”的組件的場(chǎng)景,固定部分可以是結(jié)構(gòu)固定,也可以是邏輯固定,比如下拉loading,下拉loading只是中間內(nèi)容是動(dòng)態(tài)的,而拉到底部都會(huì)觸發(fā)拉取

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)