• 谷粒商城学习——P40计算属性、侦听器、过滤器


    计算属性和侦听器

    计算属性和侦听器是自动触发的,methods是需要手动触发的。侦听器可以侦听某个值的变化来执行你的代码

    <!DOCTYPE html>
    <html lang="en">
    
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
        </head>
    
        <body>
            <div id="app">
                <!-- 某些结果是基于之前数据实时计算出来的,我们可以利用计算属性。来完成 -->
                <ul>
                    <li>西游记; 价格:{{xyjPrice}},数量:<input type="number" v-model="xyjNum"> </li>
                    <li>水浒传; 价格:{{shzPrice}},数量:<input type="number" v-model="shzNum"> </li>
                    <li>总价:{{totalPrice}}</li>
                    {{msg}}
                </ul>
            </div>
            <script src="./node_modules/vue/dist/vue.js"></script>
    
            <script>
                //watch可以让我们监控一个值的变化。从而做出相应的反应。
                new Vue({
                    el: "#app",
                    data: {
                        xyjPrice: 99.98,
                        shzPrice: 98.00,
                        xyjNum: 1,
                        shzNum: 1,
                        msg: ""
                    },
                    computed: {
                        totalPrice() {
                            return this.xyjPrice * this.xyjNum + this.shzPrice * this.shzNum
                        }
                    },
                    watch: {
                        xyjNum(newVal, oldVal) {
                            if (newVal >= 3) {
                                this.msg = "库存超出限制";
                                this.xyjNum = 3
                            } else {
                                this.msg = "";
                            }
                        }
                    },
                })
            </script>
    
        </body>
    
    </html>
    View Code

    过滤器

    Vue.filter定义全局过滤器,可以在任意vue页面调用

    filters 定义局部过滤器,只可以在当前vue实例中使用

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <!-- 过滤器常用来处理文本格式化的操作。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 -->
        <div id="app">
            <ul>
                <li v-for="user in userList">
                    {{user.id}} ==> {{user.name}} ==> {{user.gender == 1?"男":"女"}} ==>
                    {{user.gender | genderFilter}} ==> {{user.gender | gFilter}}
                </li>
            </ul>
        </div>
        <script src="./node_modules/vue/dist/vue.js"></script>
    
        <script>
            //Vue.filter定义全局过滤器,可以在任意vue页面调用
            Vue.filter("gFilter", function (val) {
                if (val == 1) {
                    return "男~~~";
                } else {
                    return "女~~~";
                }
            })
    
            let vm = new Vue({
                el: "#app",
                data: {
                    userList: [
                        { id: 1, name: 'jacky', gender: 1 },
                        { id: 2, name: 'peter', gender: 0 }
                    ]
                },
                filters: {
                    //// filters 定义局部过滤器,只可以在当前vue实例中使用
                    genderFilter(val) {
                        if (val == 1) {
                            return "";
                        } else {
                            return "";
                        }
                    }
                }
            })
        </script>
    </body>
    
    </html>
    View Code

  • 相关阅读:
    Spark技术内幕:Stage划分及提交源代码分析
    从中国制造到中国智造,奥克斯怎样独当一面?
    Spring 类构造器初始化实例
    国庆遐想:漫步云计算数据中心
    osx下快捷键相应符号
    【LuTy推荐】Samba for Android轻松无线访问手机存储,Android安卓软件下载
    WiFi共享精灵官网_笔记本变无线路由器,手机免费wlan上网软件
    vector中的find
    redis web cli nb
    Redis:安装、配置、操作和简单代码实例(C语言Client端)
  • 原文地址:https://www.cnblogs.com/yanan7890/p/14876640.html
Copyright © 2020-2023  润新知