首页 > 其他 > 详细

vue-cli学习笔记-常用属性与方法

时间:2020-04-26 18:44:52      阅读:63      评论:0      收藏:0      [点我收藏+]

事件绑定监听

事件通常以v-on开头
例如 v-on:xxx="func" v-on:click="function" 鼠标点击事件
可以简写为 @click="function"
也可以携带参数:例如 @click="function(test)"

默认事件形参: event 隐含属性对象:
$event 在原生事件中,
$event是事件对象 在自定义事件中,
$event是传递过来的数据

技术分享图片

<template>
        <div>
            <button @click="clickBtn($event)">点击</button>
        </div>
</template>

<script>
    export default {
        name: "DealEvent",
        methods:{
            clickBtn(event){
                alert(event)
            }
        }
    }
</script>

<style scoped>

</style>

事件修饰符

技术分享图片

  1. .prevent
    阻止事件的默认行为 event.preventDefault()
  2. .stop
    停止事件冒泡 event.stopPropagation()

具体的可以参考官方文档

示例:

  1. .prevent
    技术分享图片
    技术分享图片
  2. .stop
    沒有添加.stop之前 父div和子div都有click事件
    当点击父级div的时候 子级不会触发,当点击子级click事件的时候 父级或被触发(事件冒泡)
    技术分享图片
    技术分享图片
    在子级加上@click.stop后 父级就不会被触发了
    技术分享图片

按键修饰符

  1. .keycode : 操作的是某个keycode值的健
  2. .enter : 操作的是enter键
  3. .tab
  4. .delete (捕获“删除”和“退格”键)
  5. .esc
  6. .space
  7. .up
  8. .down
  9. .left
  10. .right
    详见官方文档

示例:
键盘事件:回车
技术分享图片
技术分享图片
获取keycode 回车的keycode是 13
技术分享图片
技术分享图片

金钱过滤案例

  1. 局部过滤
    技术分享图片

技术分享图片

<template>
    <div>
        <h3>格式化人民币</h3>
        <p>{{money| moneyFormat}}</p>
        <p>{{price| moneyFormat}}</p>
    </div>
</template>

<script>
    export default {
        name: "money",
        data(){
            return{
                money:22222,
                price:189.121
            }
        },
        filters:{//局部过滤
            moneyFormat(value){//过滤金钱
                 return ‘¥‘+Number(value).toFixed(2) //过滤保留两位小数   toFixed()
            }
        }
    }
</script>
  1. 全局过滤
    在main.js配置
    技术分享图片
    技术分享图片
    技术分享图片

时间格式化案例

  1. 引入第三方插件
    cmd命令行:npm i moment --save
    技术分享图片
    技术分享图片
    模板
    技术分享图片
    技术分享图片

格式化日期:
技术分享图片

技术分享图片
技术分享图片
技术分享图片

拓展:
每隔一秒刷新日期
技术分享图片

过度与动画

技术分享图片
技术分享图片

  1. 过渡
    示例:

技术分享图片

<template>
    <div>
        <button @click="show=!show">切换</button>
        <transition name="fade">
        <div class="box" v-if="show">过渡动画</div>
        </transition>
    </div>
</template>

<script>
    export default {
        name: "TrancesitionAnimate",
        data(){
            return{
                show:false
            }
        }
    }
</script>

<style scoped>
    .box{
        width: 200px;
        height: 200px;
        background-color: #8bee54;
    }
    .fade-enter, .fade-leave-to{/*v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。*/
        opacity: 0;
        transform: translateX(200px);
    }
    /*v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,
    在元素被插入之前生效,在过渡/动画完成之后移除。
    这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。*/
    /*
    v-leave-active:定义离开过渡生效时的状态。
    在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,
    在过渡/动画完成之后移除。
    这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。*/
    .fade-enter-active, .fade-leave-active{
        transition: all 2s;
    }
</style>
  1. 动画
    技术分享图片
<template>
    <div>
        <button @click="flag=!flag">图片跳动</button>
        <p></p>
        <transition name="bounce">
            <img :src="pic" alt="" width="300" v-if="flag">
        </transition>
    </div>
</template>

<script>
    import pic from ‘@/assets/24.png‘ //动态引入图片
    export default {
        name: "TrancesitionAnimate2",
        data(){
            return{
                pic:pic,
                flag:true
            }
        }

    }
</script>

<style scoped>
    .bounce-enter-active{
        animation: brunce 1.5s;
    }
    .bounce-leave-active{
        animation: brunce 1.5s reverse;
    }
    @keyframes brunce {
        0%{
            transform: scale(0);
        }
        25%{
            transform: scale(0.2);
        }
        50%{
            transform: scale(0.5);
        }
        75%{
            transform: scale(0.7);
        }
        100%{
            transform: scale(1);
        }
    }
</style>
  1. 集成animate.css第三方动画
    cmd命令:npm install animate.css --save
    技术分享图片
    或者用cdn引入
    技术分享图片
    技术分享图片
<template>

    <div>
        <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
        <button @click="flag=!flag">图片跳动</button>
        <p></p>
        <transition
                name="custom-classes-transition"
                enter-active-class="animated tada"
                leave-active-class="animated bounceOutRight"
        >
            <img :src="pic" alt="" width="300" v-if="flag">
        </transition>
    </div>
</template>

<script>

    import pic from ‘@/assets/24.png‘ //动态引入图片
    //import animate from ‘animate.css‘
    export default {
        name: "TrancesitionAnimate3",
        data(){
            return{
                pic:pic,
                flag:true
            }
        }

    }
</script>

<style scoped>


</style>

技术分享图片

animate github地址:链接

生命周期

图例:
技术分享图片
2. 钩子函数

  1. 初始化显示 只会调用一次
    beforeCreate()
    created()
    beforeMount()
    mounted()
    2. 更新状态 调用多次
    beforeUpdate()
    updated()
    3. 销毁 vue 实例 只会调用一次
    beforeDestory()
    destoryed()

  2. 常用的生命周期方法

    1. created()/mounted()
      发送ajax请求,启动定时器等异步任务
    2. beforeDestory()
      收尾操作,比如: 清除定时器、数据缓存
      技术分享图片
      技术分享图片

vue-cli学习笔记-常用属性与方法

原文:https://www.cnblogs.com/joker-dj/p/12781361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!