<style>
  .v-enter,.v-leave-to{
    opacity: 0;
  }
  .v-enter-active,.v-leave-active{
    transition:opacity 1s;
  }
</style> <div id='app'>
  <transition>
    <div v-if='show'>hello world</div>
  </transition>
  <button @click='handleClick'>切换</button>
</div> <script>
var vm = new Vue({
  el:'#app',
  data:{
    show:true
  },
  methods:{
    handleClick:function(){
      this.show = !this.show;
    }
  }
})
</script>
有时候这种渐隐渐现的效果用的比较多,要复用,需要封装一下,怎么封装呢
<style>
  .v-enter,.v-leave-to{
    opacity: 0;
  }
  .v-enter-active,.v-leave-active{
    transition:opacity 1s;
  }
</style> <div id='app'>
  <fade :show='show'>
    <div>hello world</div>
  </fade>
  <fade :show='show'>
    <h1>hello world</h1>
  </fade>
  <button @click='handleClick'>切换</button>
</div> <script>
Vue.component('fade',{
  props:['show'],
  template: `
    <transition>
      <slot v-if='show'></slot>
    </transition>
  `
})
var vm = new Vue({
  el:'#app',
  data:{
    show:false
  },
  methods:{
    handleClick:function(){
      this.show = !this.show;
    }
  }
})
</script>
可以这样封装,将dom元素传入slot,除了这样,还可以样式一起封装进去
<div id='app'>
  <fade :show='show'>
    <div>hello world</div>
  </fade>
  <fade :show='show'>
    <h1>hello world</h1>
  </fade>
  <button @click='handleClick'>切换</button>
</div> <script>
Vue.component('fade',{
  props:['show'],
  template: `
    <transition @before-enter='handleBeforeEnter' @enter='handleEnter'>
      <slot v-if='show'></slot>
    </transition>
  `,
  methods:{
    handleBeforeEnter:function(el){
      el.style.color='red'
    },
    handleEnter:function(el,done){
      setTimeout(()=>{
        el.style.color='green';
        done();
      },2000)
    }
  }
})
var vm = new Vue({
  el:'#app',
  data:{
    show:false
  },
  methods:{
    handleClick:function(){
      this.show = !this.show;
    }
  }
})
</script>
把样式一起封装进来,是比较推荐的方式

vue中动画的封装的更多相关文章

  1. 聊聊 Vue 中 axios 的封装

    聊聊 Vue 中 axios 的封装 axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是: Axios 是一个基于 promise 的 HTTP 库,可以用在 ...

  2. Vue中axios的封装和api接口的统一管理

    更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...

  3. vue中Axios的封装和API接口的管理

    前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...

  4. vue中axios的封装以及简单使用

    一.axios的封装 在vue中为了使用axios使用方便,不需要每一个模块进行导入,就需要对其进行封装: 1.新建http.js模块 import axios from 'axios' // 设置基 ...

  5. vue中动画的使用

    不要在router-view的外层使用动画!不要在router-view的外层使用动画!不要在router-view的外层使用动画! 重要的事情说三遍,在app.vue中自以为奇思妙想(实际是脑残)在 ...

  6. vue中axios的封装

    第一步还是先下载axios cnpm install axios -S 第二步建立一个htttp.js import axios from 'axios'; import { Message } fr ...

  7. vue 中动画配置

    <transition name="fade">   <router-view ></router-view> </transition& ...

  8. vue中的axios封装

    import axios from 'axios'; import { Message } from 'element-ui'; axios.defaults.timeout = 5000;axios ...

  9. vue中利用Promise封装jsonp并调取数据

    Promise就是一个给一步操作提供的容器,在这个容器里,有两个阶段无法改变的阶段,第一个阶段就是Pending(进行),第二个阶段就是结果阶段,包含Fulfilled(成功).Rejected(失败 ...

随机推荐

  1. SQL Server Reporting Service(SSRS) 第六篇 SSRS 部署总结

    前段时间完成了第一批次SSRS报表的开发,本来以为大功已经告成,结果没有想到在整个发布与部署过程中还是遇到了很多的问题,现将这些问题一一列举出来,希望对以后能够有所启发! 1. 关于数据源与数据集的发 ...

  2. RTT之柿饼UI

    console.log("strings")//向单片机通过串口发送日志提示信息 this.setData({label1: { value : "Hello RT-Th ...

  3. js 页面按钮提交后 创建显示loading div 操作完成后 再隐藏或删除 进度div

    预期效果: 1.点击Save按钮,创建及显示loading div框 2.Save操作完成后,再删除loading 及弹出提示结果 <html> <head> </hea ...

  4. CBoard数据分析实战

    介绍 CBoard由上海楚果信息技术有限公司主导开源, 它不仅仅是一款自助BI数据分析产品, 还是开放的BI产品开发平台: 用户只需简单妥妥拽拽就能自助完成数据多维分析与报表设计 开发者能够简单扩展连 ...

  5. 如何在smarty模板中执行php代码

    Smarty模板主要的目的是分离逻辑层和表现层,所以在模板中不应该包含逻辑部分,逻辑层也不应该含有HTML.要在模板中插入逻辑程序的这种做法"非常"不被推荐,在你的case中. 如 ...

  6. mysql中操作符LIKE与通配符%的使用

    mysql中通配符%用来通配其他字符,操作符LIKE用来查询字段中存在相同的字符 SELECT t.userId,t.cellphone,t.idNo,t.* FROM t_person t WHER ...

  7. 基础10 多进程、协程(multiprocessing、greenlet、gevent、gevent.monkey、select、selector)

    1.多进程实现方式(类似于多线程) import multiprocessing import time,threading def thread_run():#定义一个线程函数 print(&quo ...

  8. CentOS 使用RPM方式安装MySQL5.6

    转载自:http://blog.csdn.net/liumm0000/article/details/18841197 RPM方式安装MySQL5.6 a. 检查MySQL及相关RPM包,是否安装,如 ...

  9. linq 两个字段排序

    在linq中排序方法有: OrderBy()  --对某列升序排序 ThenBy()    --某列升序后对另一列后续升序排序 OrderByDescending() --对某列降序排序 ThenBy ...

  10. ACM-树重心的性质及动态维护

    本文转自http://fanhq666.blog.163.com/blog/static/81943426201172472943638/ 求树重心的方法:(NlogN) http://www.cnb ...