zoukankan      html  css  js  c++  java
  • Vue基础——Vue常用特性

    1、常用特性概述

    表单操作
    自定义指令
    计算属性
    过滤器
    侦听器
    生命周期
    2、表单操作
    基于Vue的表单操作:
      input 单行文本
      textarea 多行文本
      select 下拉选择框
      radio 单选框
      checkbox 多选框

    表单域修饰符:
      number:转化为数值
        <input v-model.number="age" type="text">
      trim:去掉开始和结尾的空格(注意:无法去掉中间的空格)
      lazy:将input事件切换为change事件(切换之后输入域的内容发生变化不再触发事件,只有当输入域失去焦点的时候才会触发事件)

    3、自定义指令
    为何需要自定义指令?
      内置指令不满足要求
    自定义指令的语法规则:

    // 注册一个全局自定义指令 `v-focus`
    Vue.directive('focus', {
        // 当被绑定的元素插入到 DOM 中时……
        inserted: function (el) {
            // 聚焦元素
            el.focus()
        }
    })

    自定义指令用法:

    <input type="text" v-focus>

    带参数的自定义指令:

    Vue.directive('color',{
        inserted:function(el,binding){
            el.style.backgroundColor = binding.value.color;
        }
    })

    带参数指令的用法:

    <input type="text" v-color='{color:"orange"}'>

    局部指令:

    drectives:{
        focus:{
           //指令的定义
            inserted:function(el){
                el.focus()
            }
        }
    }        

    4、计算属性
    为何需要计算属性?
      表达式的计算逻辑可能会比较复杂,使用计算属性可以使模板内容更加简洁
    计算属性的用法:

    computed:{
        reverseMessage:function(){
            return this.msg.split('').reverse().join('')
        }
    }    

    计算属性与方法的区别:
      计算属性是基于他们的依赖进行缓存的(如果数据不发生变化就不再计算,直接从缓存中取数据,反之则计算)
      方法不存在缓存

    5、侦听器
    侦听器的应用场景:
      数据变化时执行异步或开销较大的操作
    侦听器的用法:

    watch:{
        firstName:function(val){
            //val表示变化之后的值
            this.fullName = val + this.lastName;
        },
        lastName:function(val){
            this.fullName = this.firstName + val;
        }
    }        

    6、过滤器
    过滤器的作用时什么?
      格式化数据,比如将字符串格式化为首字母大写,将日期格式化为指定的格式等。
    自定义过滤器:

    Vue.filter('过滤器名称',function(value){
        //过滤器业务逻辑
    })

    过滤器的使用:

    <div>{{msg | upper}}</div>
    <div>{{msg | upper | lower}}</div>
    <div v-bind:id="id | formatId"></div>

    局部过滤器:

    filters:{
        capitalize:function(value){
            
        }
    }

    带参数的过滤器:

    Vue.filter('format',function(value,arg1){
        //value就是过滤器传过来的参数
    })

    带参数过滤器的使用:

    <div>{{date | format('yyyy-MM-dd')}}</div>

    7、生命周期
    主要阶段
      挂载(初始化相关属性)
        beforeCreate
        created
        beforeMount
        mounted
      更新(元素或组件变更操作)
        beforeUpdate
        updated
      销毁(销毁相关属性)
        beforeDestroy
        destroyed
    Vue实例的产生过程
      beforeCreate在实例初始化之后,数据观测和事件配置之前被调用。
      created在实例创建完成后立即被调用。
      beforeMount在挂载开始之前被调用。
      mounted el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。
      beforeUpdate数据更新时调用,发生在虚拟DOM打补丁之前。
      updated犹豫数据更新导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。
      beforeDestroy实例销毁之前被调用。
      destroyed实例销毁后调用。

  • 相关阅读:
    oracle 查询 当前最大时间的value的值
    Visual Studio《加载此属性页时出错》的解决办法
    (转) 关于在IE6下 无法跳转问题
    LINQ TO XML 个人的一些心得1
    CSS实现单行、多行文本溢出显示省略号(…)
    html 图像映射(一个图像多个连接)
    JS页面跳转大全
    首行负缩进达到内容对齐的目的
    HTML图片死活不显示
    JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法
  • 原文地址:https://www.cnblogs.com/michealyang/p/13672942.html
Copyright © 2011-2022 走看看