vue+vant实现商品列表批量倒计时功能

yizhihongxing

下面是详细的讲解。

环境搭建

首先,我们需要安装 Node.js 环境和 Vue CLI 脚手架。其中 Vue CLI 脚手架可以通过 npm 安装,具体的安装命令如下:

npm install -g @vue/cli

创建项目

安装完 Vue CLI 后,我们就可以使用它来创建一个 Vue 项目了。在命令行输入下面的命令来创建一个基本的 Vue 项目:

vue create demo

其中,demo 是你创建的项目名称,可以根据自己的需要来自定义。

引入 VantUI

接着,我们需要在项目中引入 VantUI,VantUI 是一款基于 Vue.js 的移动端 UI 组件库,提供了丰富的组件和工具。使用 VantUI 可以快速构建一个好看、易用的移动端应用。可以通过 npm 安装,具体的命令如下:

npm i vant -S

实现商品列表批量倒计时功能

有了基本的开发环境和 VantUI 的支持,我们就可以开始实现商品列表批量倒计时功能了。

首先,我们需要在页面中引入我们需要使用的组件和样式,如下所示:

<template>
  <div class="product-list">
    <van-row class="product-item" v-for="(item, index) in productList" :key="index">
      <van-col span="12" class="product-image">
        <img :src="item.image" alt="">
      </van-col>
      <van-col span="12" class="product-info">
        <div class="product-name">{{ item.name }}</div>
        <div class="product-price">{{ item.price }}</div>
        <van-count-down class="product-countdown" :time="item.countdown" :format="countdownFormat"></van-count-down>
      </van-col>
    </van-row>
  </div>
</template>

<script>
import { Row, Col, CountDown } from 'vant';

export default {
  name: 'ProductList',
  components: { Row, Col, CountDown },
  data() {
    return {
      productList: [
        { name: '商品1', image: 'https://picsum.photos/200/200?random=1', price: '¥ 10.00', countdown: 3600 },
        { name: '商品2', image: 'https://picsum.photos/200/200?random=2', price: '¥ 20.00', countdown: 1800 },
        { name: '商品3', image: 'https://picsum.photos/200/200?random=3', price: '¥ 30.00', countdown: 7200 },
      ],
      countdownFormat: '{h}:{m}:{s}',
    };
  },
};
</script>

接下来,我们需要在 data 中定义商品列表数据 productList,其中每个商品都包括商品名称、商品图片、商品价格和倒计时时间。

在页面中,我们使用了 VantUI 的 van-rowvan-col 组件来实现商品列表的排版。对于倒计时组件的使用,我们使用了 VantUI 的 van-count-down 组件,该组件支持自定义时间格式和倒计时结束的回调事件。当倒计时结束后,我们可以触发该商品的删除事件,将该商品从商品列表中移除。

示例说明

示例一

我们可以先在 created 钩子中监听倒计时结束的事件,如下所示:

<script>
export default {
  name: 'ProductList',
  // ...
  created() {
    // 监听倒计时结束的事件
    this.$on('van-count-down:finish', this.handleCountdownFinish);
  },
  methods: {
    handleCountdownFinish(index) {
      // 删除该商品
      this.productList.splice(index, 1);
    },
  },
};
</script>

当倒计时结束后,VantUI 的 van-count-down 组件会自动触发 van-count-down:finish 事件并将该商品的索引 index 作为参数传递,我们可以在事件回调函数 handleCountdownFinish 中删除该商品。

示例二

我们还可以自定义倒计时时间格式,例如:{hh}:{mm}:{ss},如下所示:

<van-count-down class="product-countdown" :time="item.countdown" :format="{ hh }:{ mm }:{ ss }"></van-count-down>

在自定义时间格式时,需要注意 {} 中间的内容必须是小写的,否则会导致格式化失败。另外,在格式中可以使用以下占位符:

  • {d}:天数
  • {h}:小时数
  • {m}:分钟数
  • {s}:秒数
  • {dd}:天数,不足两位自动补零
  • {hh}:小时数,不足两位自动补零
  • {mm}:分钟数,不足两位自动补零
  • {ss}:秒数,不足两位自动补零

以上就是 Vue 和 VantUI 实现商品列表批量倒计时功能的完整攻略,希望可以对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue+vant实现商品列表批量倒计时功能 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • Vue.js实现多条件筛选、搜索、排序及分页的表格功能

    标题:Vue.js实现多条件筛选、搜索、排序及分页的表格功能攻略 介绍 在Vue.js中实现一个具有多条件筛选、搜索、排序及分页功能的表格,是一个非常常见的需求。这种表格通常用于展示大量数据,让用户可以方便地查找并进行各种操作。在本篇攻略中,将介绍如何使用Vue.js实现这样一个表格功能。 步骤 步骤一 – 准备和设计数据结构 在实现这样一个表格功能之前,需…

    Vue 2023年5月29日
    00
  • 详谈Object.defineProperty 及实现数据双向绑定

    详谈Object.defineProperty 及实现数据双向绑定 Object.defineProperty 在 JavaScript 中,可以使用 Object.defineProperty() 方法来定义或修改一个对象的属性。该方法可以为一个对象的指定属性设置各种特性,包括值、可枚举性、可配置性和可写性等。 该方法的语法如下: Object.defin…

    Vue 2023年5月27日
    00
  • vue源码nextTick使用及原理解析

    Vue源码nextTick使用及原理解析 1. nextTick的使用 nextTick是Vue实例上的一个方法,该方法用于将回调函数延迟到下次 DOM 更新循环之后执行。Vue在更新 DOM 时是异步执行的,这意味着Vue并不能保证 immediate callback 将在 DOM 更新之后被调用,因为它们可能在同一个更新周期中触发。 而使用 nextT…

    Vue 2023年5月29日
    00
  • vant开发微信小程序安装以及简单使用教程

    安装 (1)首先需要安装Node.js,安装完毕后可以通过以下命令检查Node.js是否安装成功: node -v (2)然后在命令行窗口中输入以下命令,安装@vant/weapp: npm i @vant/weapp -S –production 开发 (1)将vant组件导入小程序中,在需要使用vant的页面的json文件中引入vant组件: { &q…

    Vue 2023年5月27日
    00
  • three.js 利用uv和ThreeBSP制作一个快递柜功能

    下面我将详细讲解通过利用uv和ThreeBSP制作一个快递柜功能的完整攻略。 1. 什么是ThreeBSP ThreeBSP是一种能够用于对Three.js中的3D模型进行布尔运算(Union、Intersection、Difference)的工具。有了 ThreeBSP,我们就可以用简单的API调用对3D模型的形状进行编辑、剖分、重组等操作,非常方便。 2…

    Vue 2023年5月28日
    00
  • Vue3.2.x中的小技巧及注意事项总结

    Vue3.2.x中的小技巧及注意事项总结 Vue 3.2.x是一款非常便于使用的前端框架,但是在使用的过程中还是需要注意一些小技巧和细节,本文将对这些内容进行总结。 注意事项 1. Composition API VS Options API Vue 3.2.x引入了Composition API,这是一种新的API风格,它使用function-based …

    Vue 2023年5月27日
    00
  • Vue集成three.js并加载glb、gltf、FBX、json模型的场景分析

    下面是针对”Vue集成three.js并加载glb、gltf、FBX、json模型的场景分析”的完整攻略,包括两个示例的说明。 Vue集成three.js并加载模型的场景分析 前言 Three.js是一个基于webgl开发的JavaScript 3D库,它能够让开发人员通过JS创建各种3D场景。同时,Vue则是一个较为流行的JavaScript开发框架,可以…

    Vue 2023年5月28日
    00
  • Vue.js render方法使用详解

    下面是”Vue.js render方法使用详解”的完整攻略: 一、render方法是什么 render方法是Vue.js中非常重要的一个方法,在Vue.js内部也是经常被使用的。它是用来创建Vue.js中的虚拟DOM树,并最终根据这棵虚拟DOM树生成真正的DOM树。使用render方法可以获得更加精细的DOM操作控制权,从而实现更高级的交互和性能优化。 使用…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部