国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue中多元素過渡特效的解決方案

2024-05-06 15:44:08
字體:
來源:轉載
供稿:網友

常見示例

最常見的多標簽過渡是一個列表和描述這個列表為空消息的元素:

<transition> <table v-if="items.length > 0">  <!-- ... --> </table> <p v-else>Sorry, no items found.</p></transition>

下面是一個例子

<style>.fade-enter,.fade-leave-to{opacity:0;}.fade-enter-active,.fade-leave-active{transition:opacity .5s;}</style><div id="demo"> <button @click="clear">清空數據</button>  <button @click="reset">重置</button>   <transition name="fade">  <ul v-if="items.length > 0">   <li v-for="item in items">{{item}}</li>  </ul>  <p v-else>Sorry, no items found.</p> </transition></div><script>new Vue({ el: '#demo', data: {  items: ['html','css','js'] }, methods:{  clear(){   this.items.splice(0);  },  reset(){   history.go();  } }})</script>

同標簽名稱

如果是相同標簽名的元素切換時,Vue 為了效率只會替換相同標簽內部的內容

<style>.fade-enter,.fade-leave-to{opacity:0;}.fade-enter-active,.fade-leave-active{transition:opacity .5s;}</style><div id="demo"> <button @click="show = !show">toggle</button>   <transition name="fade">  <p v-if="show">Jb51</p>  <p v-else>JB51</p> </transition></div><script>new Vue({ el: '#demo', data: {  show:true },})</script>

由下面的示例可知,兩個相同的p元素切換時,無過渡效果

因此,對于具有相同標簽名的元素切換的情況,需要通過 key 特性設置唯一的值來標記以讓 Vue 區分它們 

<div id="demo"> <button @click="show = !show">toggle</button>   <transition name="fade">  <p v-if="show" key="trueMatch">Jb51</p>  <p v-else key="falseMatch">JB51</p> </transition></div>

替代if

在一些場景中,可以給通過給同一個元素的 key 特性設置不同的狀態來代替 v-if 和 v-else

<transition> <button v-if="isEditing" key="save">Save</button> <button v-else key="edit">Edit</button></transition>

上面的例子可以重寫為

<transition> <button v-bind:key="isEditing">  {{ isEditing ? 'Save' : 'Edit' }} </button></transition>

下面是一個例子

<style>.fade-enter,.fade-leave-to{opacity:0;}.fade-enter-active,.fade-leave-active{transition:opacity .5s;}</style><div id="demo"> <button @click="isEditing = !isEditing">toggle</button>   <transition name="fade">  <p v-bind:key="isEditing">   {{ isEditing ? 'Save' : 'Edit' }}  </p> </transition></div><script>new Vue({ el: '#demo', data: {  isEditing:true },})</script>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 正宁县| 洛隆县| 阿克苏市| 大姚县| 深水埗区| 绥阳县| 东乡族自治县| 始兴县| 黑水县| 安岳县| 九龙城区| 湖南省| 辛集市| 江门市| 平利县| 黄龙县| 金寨县| 抚松县| 辰溪县| 钟祥市| 新化县| 孝义市| 佳木斯市| 常熟市| 连南| 财经| 金堂县| 新巴尔虎左旗| 将乐县| 陕西省| 厦门市| 阿克陶县| 九龙坡区| 贺兰县| 大田县| 木兰县| 龙胜| 六安市| 深州市| 墨脱县| 沈阳市|