美文网首页张蕾的技术博客
vue学习大纲3-过滤器、指令、动画

vue学习大纲3-过滤器、指令、动画

作者: cd72c1240b33 | 来源:发表于2017-06-02 19:21 被阅读162次

自定义过滤器:

  • 在vue1.0中有过滤器,比如:
//首字母大写
{{msg | capitalize}}
//货币符号
{{100 | currency '%'}}
  • 在vue2.0中所有的内置过滤器都被销毁了,2.0推荐我们自己写过滤器;
//HTML
<div id="app">
    {{Date.now() | date('aaa','bbbb')}}
</div>

//JS
//param1:过滤的内容,即原数据; param2:"aaaa"; param3:"bbb"
Vue.filter('date',function (input,param1,param2) {
       var d=new Date();
       console.log(arguments)
       return `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`
});

自定义指令; 作用:可以进行dom操作;

//html
<div v-border="msg">我是一个蓝色边框的盒子</div>
//js
var vm=new Vue({
    el:'#app',
    data:{
        msg:'blue'
    }
})
  • 1.0 自定义指令
Vue.directive('border',function (param) {
//this.el可以获取DOM元素;
    this.el.style.border=`1px solid ${param}`;
});
  • 2.0 自定义指令
Vue.directive('border',function (el,binding) {
//el:可以获取dom元素; binding内容丰富:表达式,修饰符,value值等都在里面
    el.style.border=`1px solid ${binding.value}`
})

小实战,vue2.0 自定义指令实现拖拽

//html
<div id="app">
    <div v-drag class="drag"></div>
    <div v-drag class="drag"></div>
</div>
//JS部分
//因为没有传参,第二个binding参数可以省略;
Vue.directive('drag',function (el) {
    el.onmousedown=function (e) {
        var disX=e.pageX-el.offsetLeft;
        var disY=e.pageY-el.offsetTop;
        document.onmousemove=function (e) {
            el.style.left=e.pageX-disX+'px';
            el.style.top=e.pageY-disY+'px';
        };
        document.onmouseup=function () {
            document.onmousemove=null;
            document.onmouseup=null;
        };
        e.preventDefault();
    }
});
var vm=new Vue({
    el:'#app'
})

自定义键盘事件:扩展键盘事件;他是修饰符

//html
<div id="app">
    <input type="text" @keydown.f1="up">
</div>
  • VUE1.0:
Vue.directive('on').keyCodes.f1=112;
  • VUE2.0
Vue.config.keyCodes.f1=112;//112是f1的keycode

VUE1.0 动画

  • 手写动画过渡效果
//CSS
.fly-transition{
    transition: 1s linear;
}
/*设置一个最初的状态,还要设置结束的状态*/
.fly-enter{
    width: 0;
    opacity:0;
}
.fly-leave{
    width: 100px;
    opacity: 0;
}

//HTML
<div id="app">
    <button @click="flag=!flag">显示/隐藏</button>
    <div v-show="flag" class="fadeIn" transition="fly">
        这是显示或隐藏
    </div>
</div>
  • 用animate.css库
//HTML
<div id="app">
    <button @click="flag=!flag">显示/隐藏</button>
    <div v-show="flag" class="fadeIn animated" transition="fly">
        这是显示或隐藏
    </div>
</div>

//JS
var vm=new Vue({
    el:'#app',
    data:{
        flag:true
    },
    transitions:{
        fly:{
            enterClass:'fadeInUp',
            leaveClass:'fadeOutDown'
        }
    }
})

VUE2.0 动画

  • vue2.0的动画有四种状态:
    • fly-enter 初始进入状态; fly-enter-active 激活进入时;
    • fly-leave 初始离开状态; fly-leave-active 激活离开时
  • 手写动画
//css
.fly-enter{
    width: 100px;
    height: 100px;
}
.fly-enter-active{
    transition: 1s linear;
}
.fly-leave-active{
    width:100px;
    height: 100px;
    transition: 1s linear;
}

//HTML
<button @click="flag=!flag">显示/隐藏</button>
<transition name="fly">
    <div class="div" v-show="flag">
        显示或隐藏的文字框
    </div>
</transition>
  • vue2.0配合animate.css库
  • 下面实现的是多组动画:
    • 单组动画:用transition标签包裹即可;无需key;
    • 多组动画:1)用transiton-group包裹 2)里面的每个div必须有key;
<transition-group enter-active-class="animated fadeInUp" leave-active-class="animated fadeOutDown">
    <div class="div" v-show="flag" :key="1">
        显示或隐藏的文字框
    </div>
    <div class="div" v-show="flag" :key="2">
        显示或隐藏的文字框
    </div>
</transition-group>

动画小实战:输入不同的数组,显示不同的列表内容

相关文章

  • vue学习大纲3-过滤器、指令、动画

    自定义过滤器: 在vue1.0中有过滤器,比如: 在vue2.0中所有的内置过滤器都被销毁了,2.0推荐我们自己写...

  • Vue过滤器和vue-resource

    过滤器 之前我们学习了Vue的 vue基本指令 进阶学习,我们需要了解Vue的过滤器:Vue.js允许你自定义过滤...

  • VUE初级入门实践

    VUE概述 生命周期 指令 内置指令 自定义指令 过滤器 内置过滤器 VUE1.0版本 VUE2.0版本(无内置过...

  • 九:vue.js基础(2)

    1.表单输入绑定 2.Vue实例_生命周期 3.过渡. 4.动画 5.过滤器 6.内置指令 7.自定义指令

  • Vue 成长之旅 | Vue基础用法一

    一、Vue 基础使用 二 、 Vue的指令与过滤器 1、指令的概念 指令: 是vue为开发者提供的模板语法 , 用...

  • 2020-04-09vue

    Vue基本指令 改变样式 v-for v-if与v-show 过滤器 生命周期 动画过渡 定义组件 组件中的dat...

  • 2018-10-09 vue的简单复习

    主流框架 vue angular react 1.vue简介 简化Dom操作 2.vue指令 3.vue过滤器 ...

  • VUE02

    v-cloak ref monted Vue.directive()自定义指令 }) Vue.filter过滤器 ...

  • vue2(二)

    目录 ◆ vue 简介◆ vue 的基本使用◆ vue 的调试工具◆ vue 的指令与过滤器◆ 品牌列表案例 一 ...

  • vue常用特性应用场景

    1 过滤器 Vue.filter 定义一个全局过滤器 2 自定义指令 让表单自动获取焦点 通过Vue.direc...

网友评论

    本文标题:vue学习大纲3-过滤器、指令、动画

    本文链接:https://www.haomeiwen.com/subject/dnwufxtx.html