当前位置:首页 > 文章列表 > 文章 > 前端 > 通过分页、排序和过滤功能优化电子商务导航

通过分页、排序和过滤功能优化电子商务导航

来源:dev.to 2024-11-23 09:40:54 0浏览 收藏

有志者,事竟成!如果你在学习文章,那么本文《通过分页、排序和过滤功能优化电子商务导航》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

通过分页、排序和过滤功能优化电子商务导航

在我的网络笔记中查看这篇文章!

我们正在使我们的商店变得越来越人性化,今天我们将在我们的电子商务商店改进方面又迈出一步。在之前的文章中,我们已经添加了分页、排序和过滤器,但它们只是我们模板的一部分,没有任何功能,现在是时候修复它了,所以让我们开始为今天的工作构建一个简单的计划,并继续改进我们的商店nuxt.js.

只是想提醒一下,您可以在这里查看我们正在构建的演示,以及这里的源代码。

  1. 分页。将产品列表划分为可管理的页面。
  2. 通过用户友好的界面实现排序功能。
  3. 根据相关产品属性(例如类别)实施过滤器。

概述了需要改进的关键领域后,是时候卷起袖子深入研究实施细节了。我们的目标是通过向之前实现的分页、排序和过滤功能添加功能,将 nuxt.js 电子商务商店转变为用户友好的平台。让我们从处理分页功能开始,该功能会将我们的产品列表划分为可管理、可抓取的页面,以增强浏览体验。

1.分页。将产品列表划分为可管理的页面。

之前我们在商店页面添加了分页元素,我喜欢它的设计,所以我不会改变css样式,只改变分页功能。

什么是分页?分页是一种用于将大量内容(例如产品列表)划分为单独页面的技术。这有助于通过一次仅加载内容的子集来提高网站性能,使用户更轻松地浏览信息。

在我们的例子中,产品列表将是我们的“大内容”,所以让我们修改产品数组,但不要直接在商店状态中修改它,让我们在商店 getter 中渲染之前修改它。对于打开的产品商店和内部状态,添加将存储“currentpage”和“itemsperpage”值的分页对象,然后在 getter 内部创建新的 getter“gpaginateditem”,它将接受项目列表并逐部分返回该列表。该 getter 将计算页面的开始值和结束值,并在这些值之间“切片”项目列表:

gpaginateditems: (state) => (items) => {
    const start = (state.pagination.currentpage - 1) * state.pagination.itemsperpage;
    const end = start + state.pagination.itemsperpage;
    return items.slice(start, end);
},

下一步,我们需要创建仅修改“currentpage”值的操作,它们将用于更改页面。

asetpage(page) {
    this.pagination.currentpage = page;
},
anextpage() {
    if (this.pagination.currentpage < this.gtotalpages) {
        this.pagination.currentpage++;
    }
},
aprevpage() {
    if (this.pagination.currentpage > 1) {
        this.pagination.currentpage--;
    }
}

现在我们可以转到我们的商店页面,其中有一些更改:

  • 更新产品列表部分,我们需要添加 getter,它将使用产品列表作为参数并一次仅渲染一页;
  • 更新我们的分页部分,添加将更改页面的点击事件(箭头的上一页和下一页并将页面设置为每个数字),实现仅显示第一页、最后一页和当前页面的功能;
  • 1
  • ...
  • {{ page }}
  • ...
  • {{ productsstore.gtotalpages }}

是的,就是这样,现在我们只需要重新启动 nuxt 开发服务器,添加更多测试产品,并尝试分页行为。
通过分页、排序和过滤功能优化电子商务导航
我喜欢它的外观和工作原理,但我们没有时间玩,需要继续前进。

2. 通过用户友好的界面实现排序功能。

在我们的设计中,我们已经有一个包含所有排序选项的下拉菜单,因此我们只需要接收用户选择的选项并对我们所有的产品进​​行排序,但不要忘记它应该与我们的分页同时实现。

请打开产品存储并添加一个新变量“排序”,默认值为“流行度”。让我们使用我们将在操作中对产品进行排序的变体,在这种情况下,我们需要创建一个新的排序操作并添加一个条件语句,该条件语句将根据排序值修改我们的产品列表。

asetsort(sort) {
    this.sort = sort;
    if (sort === 'ltoh') {
        return this.productslist.sort((a, b) => a.price - b.price);
    } else if (sort === 'htol') {
        return this.productslist.sort((a, b) => b.price - a.price);
    }
},

另外,不要忘记添加一个将返回排序语句值的 getter。接下来,我们需要再次修改我们的商店页面,并简单地使用新值更新排序下拉列表:

sort by

并将 setter-getter 添加到我们的排序值中:

sort: {
    get() {
        return this.productsstore.gsort;
    },
    set(value) {
        this.productsstore.asetsort(value);
        this.productsstore.asetpage(1);
    }
}

太好了,重启 nuxt 开发服务器并检查结果:

3. 根据相关产品属性(例如类别)实施过滤器。

这是我们今天的第三部分,也是最后一部分,我们将为不同的产品类别添加和配置过滤器。为此,打开产品商店并将“categoryfilter”变量添加到状态中,然后添加“asetcategoryfilter”操作,该操作将简单地更新我们的过滤器,并根据该过滤器值,我们将返回过滤后的产品列表。修改“gproductslist”getter,它将按类别键过滤所有项目,并仅返回具有某些特定类别的项目。

gproductslist: (state) => {
    let products = state.productslist;
    if (state.categoryfilter) {
        products = products.filter(el => el.category === state.categoryfilter);
    }
    if (state.categoryfilter === 'all') {
        products = state.productslist
    }
    return products;
},

您可以在该列表中添加任意数量的过滤器,并使用户可以选择他们正在寻找的产品。

此外,我们还需要修改商店模板中的过滤器本身:

  • {{ category }}

现在,只要用户按下某个过滤类别,我们的应用程序就会返回已过滤的产品列表。

在本文中,我们通过实现三个基本功能来优化 nuxt.js 商店的电子商务导航体验:分页、排序和过滤。我们首先添加分页功能,将产品列表划分为可管理的页面,以获得更好的性能和用户体验。接下来,我们实现了排序选项,允许客户根据受欢迎程度、价格从低到高、价格从高到低对产品进行排序,增强用户偏好。最后,我们结合了基于产品类别的过滤器,使客户能够快速缩小搜索结果范围。在整个实施过程中,我们保持了用户友好的界面,确保了无缝且直观的导航体验。通过优化这些关键功能,我们不仅提高了电子商务平台的整体可用性,还可能提高客户满意度、转化率和自然流量。

学习某些东西的最佳变体是自己制作它,同样的事情也适用于编码,但如果您需要本教程的源代码,您可以在这里获取。

到这里,我们也就讲完了《通过分页、排序和过滤功能优化电子商务导航》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
Win10电脑分屏功能怎么关闭 Win10电脑分屏功能的关闭方法Win10电脑分屏功能怎么关闭 Win10电脑分屏功能的关闭方法
上一篇
Win10电脑分屏功能怎么关闭 Win10电脑分屏功能的关闭方法
Java 方法重载:int 和 Integer 类型如何影响方法定义?
下一篇
Java 方法重载:int 和 Integer 类型如何影响方法定义?
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    9次使用
  • Brev AI:零注册门槛的全功能免费AI音乐创作平台
    Brev AI
    探索Brev AI,一个无需注册即可免费使用的AI音乐创作平台,提供多功能工具如音乐生成、去人声、歌词创作等,适用于内容创作、商业配乐和个人创作,满足您的音乐需求。
    9次使用
  • AI音乐实验室:一站式AI音乐创作平台,助力音乐创作
    AI音乐实验室
    AI音乐实验室(https://www.aimusiclab.cn/)是一款专注于AI音乐创作的平台,提供从作曲到分轨的全流程工具,降低音乐创作门槛。免费与付费结合,适用于音乐爱好者、独立音乐人及内容创作者,助力提升创作效率。
    9次使用
  • SEO标题PixPro:AI驱动网页端图像处理平台,提升效率的终极解决方案
    PixPro
    SEO摘要PixPro是一款专注于网页端AI图像处理的平台,提供高效、多功能的图像处理解决方案。通过AI擦除、扩图、抠图、裁切和压缩等功能,PixPro帮助开发者和企业实现“上传即处理”的智能化升级,适用于电商、社交媒体等高频图像处理场景。了解更多PixPro的核心功能和应用案例,提升您的图像处理效率。
    9次使用
  • EasyMusic.ai:零门槛AI音乐生成平台,专业级输出助力全场景创作
    EasyMusic
    EasyMusic.ai是一款面向全场景音乐创作需求的AI音乐生成平台,提供“零门槛创作 专业级输出”的服务。无论你是内容创作者、音乐人、游戏开发者还是教育工作者,都能通过EasyMusic.ai快速生成高品质音乐,满足短视频、游戏、广告、教育等多元需求。平台支持一键生成与深度定制,积累了超10万创作者,生成超100万首音乐作品,用户满意度达99%。
    12次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码