vue.js计算机属性01

简介: vue.js计算机属性01
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/vue.js"></script>
</head>
<body>
    <div id="app">
        <p>用插值表达式计算总价:¥{{shop[0].price*shop[0].count + shop[1].price*shop[1].count + shop[2].price*shop[2].count }}</p>
        <!-- 调用计算属性totalprice,调用时不能加括号 -->
        <p>第一次用计算属性计算商品总价:¥{{totalprice}}</p>
        <!-- 第二次调用的时候,由于计算属性所依赖的商品数据没有发生改变,所以第二次调用计算属性的时候,Vue会直接从计算属性的缓存中取出上一次的调用计算属性时的计算结果,而不会重复执行计算属性的代码 -->
        <p>第二次用计算属性计算商品总价:¥{{totalprice}}</p>
        <!-- 方法是没有缓存的,所以调用了多少次,就会重复多少次方法执行方式 -->
        <p>第一次用方法total计算商品总价:¥{{ total() }}</p>
        <p>第二次用方法total计算商品总价:¥{{ total() }}</p>
        <!-- 当修改totalprice和total所依赖的数据后,totalprice最多只执行一次,而total会执行多次 -->
        <p>修改计算属性和方法所依赖的商品数据:<input type="number" v-model= "shop[1].count"></p>
        <p>修改计算属性和方法不依赖的数据title:<input type="text" v-model = "title"></p>
    </div>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                title:'购物车',
                shop:[
                    {
                        name:'OPPO R15',
                        price:2999,
                        count:3
                    },
                    {
                        name:'华为P20',
                        price:2699,
                        count:2
                    },
                    {
                        name:'苹果13',
                        price:1999,
                        count:4
                    }
                ]
            },
            computed:{
                // 定义第一具体的totalprice计算机属性
                // 计算机属性就是一个函数
                totalprice:function(){
                    console.log('计算属性totalprice被调用了一次')
                    let sum = 0 //总价
                    for(let i=0; i<this.shop.length;i++){
                        sum = sum + this.shop[i].price * this.shop[i].count
                    }
                    // 计算属性最后必须把计算结果return返回
                    return sum
                }
            },
            methods:{
                total:function(){
                    console.log('方法total被调用了一次')
                    let sum = 0 //总价
                    for(let i=0; i<this.shop.length;i++){
                        sum = sum + this.shop[i].price * this.shop[i].count
                    }
                return sum
                }
            }
        })
    </script>
</body>
</html>
相关文章
|
1月前
|
JavaScript API
Vue3中的计算属性能否动态修改
【9月更文挑战第5天】Vue3中的计算属性能否动态修改
90 10
|
2天前
|
JavaScript API
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
14 1
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
|
14天前
|
缓存 JavaScript 前端开发
vue-day02计算属性,v-bind,v-if,v-for
文章介绍了Vue.js中的计算属性、class与style的绑定、条件渲染和列表渲染的使用。通过示例代码展示了如何使用计算属性简化模板逻辑、如何通过v-bind动态绑定class和style、如何使用v-if进行条件渲染以及如何使用v-for进行列表渲染。这些特性使得Vue.js在构建动态用户界面时更加灵活和强大。
vue-day02计算属性,v-bind,v-if,v-for
|
13天前
|
JavaScript
vue 计算属性,实现复选框的全选和反选 【小案例】
本文通过一个Vue.js小案例,展示了如何使用计算属性实现复选框的全选和反选功能。计算属性的完整写法包括get和set两部分,分别用于获取值和设置值。在全选和反选的场景中,计算属性的get方法用于判断所有复选框是否都已选中,从而控制全选复选框的状态;计算属性的set方法则用于根据全选复选框的状态,批量更新每个复选框的选中状态。通过示例代码和效果图,文章清晰地说明了计算属性在实现这一功能中的作用和效果。
vue 计算属性,实现复选框的全选和反选 【小案例】
|
15天前
如何在 Vue3 中创建一个计算属性?
如何在 Vue3 中创建一个计算属性?
26 1
|
21天前
|
JavaScript API
vue学习(13)监视属性
vue学习(13)监视属性
30 2
|
1月前
|
JavaScript API
如何使用Vue3的可计算属性
【9月更文挑战第5天】如何使用Vue3的可计算属性
51 13
|
28天前
|
缓存 JavaScript
vue学习(12)计算属性
vue学习(12)计算属性
17 3
|
28天前
|
缓存 JavaScript
vue学习(12)计算属性
vue学习(12)计算属性
28 2
|
1月前
|
存储 JavaScript 前端开发
JS中的数组有哪些常用操作函数和属性
【9月更文挑战第7天】JS中的数组有哪些常用操作函数和属性
12 1