IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue 简单购物计算 -> 正文阅读

[JavaScript知识库]vue 简单购物计算

? <div id="app">

? ? ? <!-- table>(thead>tr>td*6)+(tbody>tr>td*6) -->

? ? ? <!-- 结尾 ctrl+i 激活提示, 按回车 -->

? ? ? <table border="1">

? ? ? ? <thead>

? ? ? ? ? <tr>

? ? ? ? ? ? <!-- v-model 双向绑定 -->

? ? ? ? ? ? <!-- 1. 数据影响DOM元素 -->

? ? ? ? ? ? <!-- 2. DOM元素变化时影响数据 -->

? ? ? ? ? ? <!-- 看实际需求决定要不要双向绑定 -->

? ? ? ? ? ? <!-- checked: 普通的HTML属性, 代表是否勾选 -->

? ? ? ? ? ? <td>

? ? ? ? ? ? ? <input

? ? ? ? ? ? ? ? @change="chaChanged"

? ? ? ? ? ? ? ? type="checkbox"

? ? ? ? ? ? ? ? :checked="cha_status"

? ? ? ? ? ? ? />全选

? ? ? ? ? ? </td>

? ? ? ? ? ? <td>序号</td>

? ? ? ? ? ? <td>名称</td>

? ? ? ? ? ? <td>单价</td>

? ? ? ? ? ? <td>数量</td>

? ? ? ? ? ? <td>小计</td>

? ? ? ? ? ? <td>操作</td>

? ? ? ? ?

? ? ? ? ? </tr>

? ? ? ? </thead>

? ? ? ? <tbody>

? ? ? ? ? <!-- 循环的 参数变量名随意 -->

? ? ? ? ? <tr v-for="(p,i) in products">

? ? ? ? ? ? <td><input type="checkbox" v-model="p.checked" /></td>

? ? ? ? ? ? <td>{{i+1}}</td>

? ? ? ? ? ? <td>{{p.name}}</td>

? ? ? ? ? ? <td>¥{{p.price}}</td>

? ? ? ? ? ? <td>

? ? ? ? ? ? ? <button :disabled="p.count==1" @click="p.count--">-</button>

? ? ? ? ? ? ? <span>{{p.count}}</span>

? ? ? ? ? ? ? <button @click="p.count++">+</button>

? ? ? ? ? ? </td>

? ? ? ? ? ? <td>¥{{p.price * p.count}}</td>

? ? ? ? ? ? <td>

? ? ? ? ? ? ? <!-- 数组方法:删除指定序号的元素?? -->

? ? ? ? ? ? ? <!-- 数组.splice(i,a,b): 从序号i位置删除a个元素, 然后添加b元素到里面 -->

? ? ? ? ? ? ? <button @click="products.splice(i,1)">删除</button>

? ? ? ? ? ? </td>

? ? ? ? ? </tr>

? ? ? ? </tbody>

? ? ? ? <tfoot>

? ? ? ? ? <tr>

? ? ? ? ? ? <!-- 计算属性total, 不需要()就能触发 -->

? ? ? ? ? ? <td colspan="8">合计: {{total}}</td>

? ? ? ? ? </tr>

? ? ? ? </tfoot>

? ? ? </table>

? ? </div>

? ? <script src="./vendor/vue.js"></script>

? ? <script>

? ? ? new Vue({

? ? ? ? el: '#app',

? ? ? ? methods: {

? ? ? ? ? // 全选按钮点击后, 值变化时触发

? ? ? ? ? chaChanged(e) {

? ? ? ? ? ? console.log(e)

? ? ? ? ? ? //读取勾选框的

? ? ? ? ? ? const checked = e.target.checked

? ? ? ? ? ? // 把每个商品的勾选框状态, 都等于 全选按钮的

? ? ? ? ? ? this.products.forEach(v => v.checked = checked)

? ? ? ? ? ? // v : value的缩写, 因为懒..

? ? ? ? ? },

? ? ? ? },

? ? ? ? // 计算属性: 使用时不用() 就会自动基础

? ? ? ? computed: {

? ? ? ? ? // 全选->每一个都是选中

? ? ? ? ? cha_status() {

? ? ? ? ? ? // js 的day03 高阶函数

? ? ? ? ? ? return this.products.every(value => value.checked)

? ? ? ? ? },

? ? ? ? ? total() {

? ? ? ? ? ? return this.products.reduce((sum, value) => {

? ? ? ? ? ? ? const { price, count, checked } = value

? ? ? ? ? ? ? // 利用 checked是布尔类型, true->1 ?false->0

? ? ? ? ? ? ? // 乘0 =0 的特点, 只计算勾选是true的商品总和

? ? ? ? ? ? ? return sum + price * count * checked

? ? ? ? ? ? }, 0)

? ? ? ? ? },

? ? ? ? },

? ? ? ? data: {

? ? ? ? ? products: [

? ? ? ? ? ? // checked: 代表是否勾选

? ? ? ? ? ? { name: '高达', price: 99, count: 5, checked: true },

? ? ? ? ? ? { name: '奥特曼', price: 9900, count: 15, checked: false },

? ? ? ? ? ? { name: '迪迦', price: 199, count: 1, checked: false },

? ? ? ? ? ? { name: '龙珠', price: 299, count: 5, checked: true },

? ? ? ? ? ],

? ? ? ? },

? ? ? })

? ? </script>

? </body>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 12:57:45  更:2022-01-16 12:59:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:01:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码