1111111111111
多元素过渡多个_vue transition组件生命周期">
当前位置:   article > 正文

Vue知识点整理(三)transition过渡与生命周期_vue transition组件生命周期

vue transition组件生命周期

transition 过度 Vue在插入,更新或者移除DOM时,提供不同方式的应用过渡效果 1.单个元素/组件过度 css过渡 css动画 结合animate.css 动画库 2.多个元素过度(设置key)

单元素过渡

  1. <transition name="kerwinfade" >
  2. <div v-show="isShow">1111111111111</div>
  3. </transition>

多元素过渡

多个元素是指互斥这种,有你没我,有我没你 比如 v-if 和v-else当有多个相同标签的元素切换时,需要使用key特性设置唯一的值来标记来让Vue区分它们,diff算法会发现如果key值一样就替换,不一样直接删除。否则Vue为了效率只会替换相同标签内部的内容,不会删除。(如果标签不一样,就会认为不是一个东西了,发生改变了)。所以就会有动画了,但是能不能不一起触发,要有个先后顺序就使用 mode:in-out(先来再走); out-in(先走再来)

  1. <transition name="kerwinfade" mode="in-out">
  2. <div v-if="isShow" key="1">1111111111111</div>
  3. <div v-else key="2">222222</div>
  4. </transition>

组件过渡

  1. <!--keep-alive 保存状态,防止重新渲染-->
  2. <!--利用transition 包住组件 -->
  3. <keep-alive>
  4. <transition name="kerwinfade" mode="out-in">
  5. <component :is="who"></component>
  6. </transition>
  7. </keep-alive>

列表过渡

  1. <!--列表过度 使用的是一个 transition-group的标签 他会以一个真实的元素呈现,
  2. 默认为一个span 也可以用过tag修改成其他的元素
  3. 但是必须提供一个唯一的key属性值-->
  4. <transition-group tag="ul" name="kerwinbounce">
  5. <li v-for="(data,key) in dd" :key="data">
  6. {{data}}----{{key}}
  7. <button @click="del(key)">del</button>
  8. </li>
  9. </transition-group>

生命周期

  1. //beforeCreate,created,beforeMount,mounted只能执行一次
  2. beforeCreate () {
  3. console.log("beforeCreate")
  4. },
  5. created () {
  6. console.log("created")
  7. },
  8. beforeMount () {
  9. console.log("beforeMount")
  10. },
  11. mounted () {
  12. //结束之后,节点才会渲染出来,访问dom,ajax,监听事件,window.onscroll 设置监听
  13. console.log("mounted")
  14. },
  15. //beforeUpdate,updated可以更新无数次
  16. beforeUpdate () {
  17. console.log("beforeUpdate")
  18. },
  19. updated () {
  20. console.log("updated")
  21. },
  22. //解除绑定 v-if=false的时候就会销毁
  23. beforeDestroy () {
  24. console.log("beforeDestroy")
  25. },
  26. destroyed () {
  27. console.log("destroyed")
  28. }

过滤器

  1. <!--通过 | 把数据送给我的过滤器-->
  2. <img :src="data.poster | myImage"/>
  3. //定义过滤器
  4. Vue.filter('myImage',function(data){
  5. console.log(data)
  6. return data;
  7. })

自定义指令

  1. 单引号表示的是变量
  2. <div v-hello="'red'">11111</div>
  3. Vue.directive("hello",{
  4. //在指令的生命周期中只会执行一次,所以在修改mycolor的时候不会改变
  5. inserted(el,bind){
  6. //插入
  7. console.log(el)
  8. console.log(bind)
  9. el.style.background=bind.value
  10. },
  11. //修改会执行很多次
  12. update(el,bind){
  13. el.style.background=bind.value
  14. }
  15. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/363712
推荐阅读
  

闽ICP备14008679号