计算属性(vue练习例子)

本文通过一个实例详细介绍了Vue中计算属性的使用方式及其与方法的区别。计算属性基于其依赖进行缓存,当依赖未发生变化时,再次访问计算属性将直接返回缓存结果,提高了效率。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">

    </style>
</head>
<body>
<div id="app">
    <p>{{remessage}}</p>
    <p>{{remessagetwo}}</p>
    <p>{{a}}+{{b}}={{c}}</p>
    <p>{{a}}+{{b}}+{{c}}={{d}}</p>
    <b>计算属性是基于它们的依赖进行缓存的,通常用方法来替换计算属性</b>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.13/vue.min.js"></script>
<script type="text/javascript">
new Vue({
    el:"#app",
    data:{
        a:15,
        b:20,
        message:"我要等待1s后显示"
    },
    //钩子函数
    computed:{
        //设置计算属性
        remessage:function(){
            return this.message.split('').reverse().join(' ');
        },
        remessagetwo:function(){
            return this.remessage.split('').reverse().join(' ');
        },
        //计算属性处理 a+b=c
        c:function(){
            return this.a+this.b
        },
        d:{
            //getter
            get:function(){
                this.d=100;//这里改变了d的值会优先进入下方的set 重置了a的值 影响了最后d的结果值
                return this.a+this.b+this.c;
            },
            set:function(newValue){
                console.log("d="+newValue);
                this.a=20;
            }
        }
    },
    methods:{

    }
});
</script>
</body>
</html>

好的!以下是关于 Vue.js 实现购物车功能的详细介绍: --- ### Vue.js 购物车附加练习 Vue.js 是一款流行的前端框架,用于构建交互式的用户界面。通过结合其数据绑定、组件化等特性,可以轻松实现一个完整的购物车系统。 #### 基本步骤: 1. **创建商品列表** 使用 `v-for` 指令遍历商品数组,并显示每个商品的信息(如名称、价格等)。同时为每件商品添加“加入购物车”按钮。 2. **管理状态 (State)** 定义一个响应式变量来存储当前购物车的商品信息。例如,可以用一个数组保存已选商品及其数量。 3. **事件处理** - 点击“加入购物车”按钮时触发方法将对应商品添加到购物车中。 - 提供增加/减少商品的功能以及移除商品的操作。 4. **动态计算总价** 利用 Vue 的 computed 属性实时更新购物车内所有商品的价格总和。 5. **优化用户体验** 可以进一步增强功能,比如限制单个商品的最大购买量、展示优惠提示等。 示例代码片段: ```html <template> <div id="app"> <!-- 商品列表 --> <h2>商品列表</h2> <ul> <li v-for="(item, index) in products" :key="index"> {{ item.name }} - ¥{{ item.price }} <button @click="addToCart(item)">加入购物车</button> </li> </ul> <!-- 购物车 --> <h2>我的购物车</h2> <ul> <li v-for="(cartItem, idx) in cartItems" :key="idx"> {{ cartItem.name }} x {{ cartItem.quantity }}, 小计: ¥{{ cartItem.subtotal }} <button @click="removeFromCart(idx)">删除</button> </li> </ul> <p><strong>总计:</strong> ¥{{ totalAmount }}</p> </div> </template> <script> export default { data() { return { products: [ { name: '苹果', price: 5 }, { name: '香蕉', price: 3 }, { name: '橙子', price: 8 } ], cartItems: [] }; }, methods: { addToCart(product) { let existing = this.cartItems.find(p => p.name === product.name); if (existing) { existing.quantity++; } else { this.cartItems.push({ ...product, quantity: 1 }); } }, removeFromCart(index) { this.cartItems.splice(index, 1); } }, computed: { totalAmount() { return this.cartItems.reduce((sum, item) => sum + item.price * item.quantity, 0); } } }; </script> ``` 上述例子展示了如何利用 Vue 来实现简单的购物车逻辑,包括商品添加、移除及金额统计等功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值