zoukankan      html  css  js  c++  java
  • vue的常用特性

    1.计算属性   computed

      (1)为什么要计算属性:表达式的计算逻辑可能会比较复杂,我们使用计算属性可以使模板内容更加简洁

    示例:    <div id="xxoo">
            <div>{{msg}}</div>                       //result:question
            <!-- <div>{{msg.split("").reverse().join("")}}</div>   -->
                <!-- 计算逻辑看起来比较复杂 -->
                <!-- 计算属性放在data中 -->  
            <div>{{reverString}}</div>               //result: noitseuq   
        </div>
        <script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
        <script type="text/javascript">
            var pp = new Vue({
                el:"#xxoo",
                data:{          
                    msg:"question"
                },
                methods:{      //放vue实例方法
       
                },
                computed:{      //放计算属性
                    reverString:function(){   
                      return  this.msg.split("").reverse().join("")   //翻转字符串
                    }
                }
            })
        </script>

       (2)计算属性与方法的区别

           ~计算属性是基于它们的依赖进行缓存的  (依赖就是data中的数据 如:this.msg)

         ~方法不存在缓存

           <div>{{reverString}}</div>
            <div>{{reverString}}</div>
            <!-- 
                方法没有缓存     计算属性有缓存
                所以打印的结果  methods有两次  computed只有一次  
            -->
            <div>{{reverSt()}}</div>                   //注意:方法要用()
            <div>{{reverSt()}}</div>

    2.侦听器  watch

       数据一旦发生变化就通知侦听器所绑定的方法,运用于数据变化时执行异步或开销较大的操作

    示例:    <div id="xxoo">
            <div>
                <span>名:</span>
                <input type="text" value="" v-model="name">
            </div>
            <div>
                <span>姓:</span>
                <input type="text" value="" v-model="xing">
            </div>
            <div>{{fullNmae}}</div>
        </div>
       <script src="../node_modules/vue/dist/vue.js"></script>
        <script type="text/javascript">
            var pp = new Vue({
                el: "#xxoo",
                data: {
                    name: "Jim",
                    xing: "Green",
                    fullNmae: "Jim Green"
                },
                methods: {
                },
                computed: {
                },
                watch: {
                    name: function (val) {
                        this.fullNmae = val + " " + this.xing;             //监听器的名字要和data属性名相同
                    },
                    xing: function (val) {
                        this.fullNmae = this.name + ' ' + val;        //监听事件:数据发生变化就触发事件
                    },
                },
            })
        </script>

    3.过滤器  watch

      (1)过滤器的作用: 格式化数据,比如将字符串格式化为首字母大写,将日期格式化为指定的格式等

      (2)自定义过滤器(全局)

    示例:  <div id="xxoo">
            <input type="text" v-model="msg">
            <div>
                {{msg | tention}}        //调用过滤器
            </div>
        </div>
        <script type="text/javascript" src="../第一天/node_modules/vue/dist/vue.js"></script>
        <script type="text/javascript">
        Vue.filter("tention",function(val){                          //全局过滤器
            // return val.charAt(0).toUpperCase() + val.slice(1)    //首字母大写
            return val.charAt(0).toLowerCase() + val.slice(1)  //首字母小写        
            // cahrAt(0)  取出索引为0的数值    slice(1)  从一开始
    
        })
        var pp = new Vue({
            el:"#xxoo",
            data:{
                msg:"hello",
            },
            methods:{
            },
        })
        </script>

      (3)局部过滤器

    filters:{
        capitalize:function(){}
    }

      (4)带参数的过滤器

        <div id="xxoo">
            <div>{{msg | timeClass("yyyy-MM-dd")}}</div>        
            <!-- 带参数的过滤器 -->
        </div>
        <script type="text/javascript" src="../第一天/node_modules/vue/dist/vue.js"></script>
        <script type="text/javascript">
    
        Vue.filter( "timeClass", function(val,arg1){  // val就是msg   arg1是过滤器内的参数
            var yet = "";
            yet = val.getFullYear() + "-" + val.getMonth() + "-" +val.getDate()
            // 年月日拼接
            return yet;       //过滤器返回结果
        })
            var pp = new Vue({
                el:"#xxoo",
                data:{
                    msg:new Date(),
                },
            })
        </script>
  • 相关阅读:
    android的几种“通知”方式简单实现(Notification&NotificationManager)
    《转》常用的正则表达式
    Http编程(二)使用Apache 的API实现
    http编程(一)使用javaAPI实现
    [随笔] 随笔、随笔
    [Java] 游戏服务器搭建 netty+spring+protobuf
    [C/C++基础--笔试突击] 概述
    [单元测试]Java单元测试,基于Mockito的第一次尝试
    [解决方法] spring-mongo mongodb 2.x 升级到 3.x 配置中出现的一些问题
    [解决方法]log4j的 highlight属性在Eclispe中显示乱码
  • 原文地址:https://www.cnblogs.com/wsm777/p/13592028.html
Copyright © 2011-2022 走看看