谷粒商城第十天-获取分类属性分组(前端组件抽取父子组件交互)

目录

一、总述

1.1 前端思路

1.2 后端思路

二、前端部分

2.1 将分类树前端代码抽取成一个组件

2.2 使用elementUI的组件实现左右组件功能

2.3 使用事件机制进行组件通信

三、后端部分

四、总结


一、总述

说一下今天需要实现一个什么样子的功能:

很简单,就是在属性分组的那个页面,左边呈现商品分类树,右边是分组列表,当我点击左边的某一个三级分类的时候,右侧的分组列表能够动态的显示这个分类下的分组

1.1 前端思路

1. 首先因为这个分类树不仅需要在分组页显示,在属性规格参数以及销售属性那里都需要使用,因此如果还是每次都把这个分类树的代码每次都放到分组页、属性规格参数页、销售属性页那里就很冗余,代码没有得到复用,代码复用的思想很重要呀!!!

要解决这个问题,就需要将分类树代码抽取出来,单独写成一个组件,然后在需要使用的地方直接使用就行了。关键在于如何抽取组件,以及如何使用抽取的组件

2. 如何在一个页面中产生 左边是一个组件,右边是另外一个组件的效果?

这里要有这种意识,这种效果能不能使用elementUI组件库帮我们实现呢?答案是直接使用

3. 到底怎样实现我在左边分类树那里点击了三级分类,在右侧就能动态的显示以这个分类下的分组列表呢?

其实要知道,右侧之所以能显示某个分类下的分组,是因为它携带了分类id,然后在后端服务器中查了以这个分类id的分组列表,所以右侧得得到这个分类id,那问题又来了?到底怎样才能得到呢?很明显,现在是并不是一个组件,而是一个组件向另外一个组件传递信息,这该如何实现呢?

其实组件之间的交互已经提供好了一个方法,即事件机制,下面我会介绍

1.2 后端思路

后端没什么好说的,并不需要我们写自定义的dao方法,或者是独特的业务方法啥的,就是简单的查询,就是在分组表中根据分类id进行查询,就这一个接口就行了,直接使用代码生成好的即可

二、前端部分

前端部分就上面我说的那三点:

2.1 将分类树前端代码抽取成一个组件

这里没什么好说的,复制之前写的分类树那个组件,删除掉不需要的属性方法

这里我直接贴上这个组件:

放到views/common目录下面,代表通用组件

<template><div><el-tree:data="data":props="defaultProps"node-key="catId"ref="tree"@node-click="treenodeclick"></el-tree></div>
</template>
<script>
import { treeListCategory} from "@/api/product/category";export default {data() {return {data: [],defaultProps: {children: "children",label: "name"}};},methods: {getTreeList() {this.loading = true;treeListCategory().then((response) => {this.data = response.data;});},treenodeclick(data,node,component){if(data.catLevel == 3){this.$emit("tree-node-click",data,node,component);}}},created() {this.getTreeList();}
};
</script>
<style>
</style>

当然这里我是完成了整个功能之后在写的博客,上面其实已经是写好了树节点的点击事件,并使用了事件机制传递了参数给了父组件。

这里是将这个分类树组件抽取出来了,可是现在在分组页的这个组件还没有引入,那么如何进行引入呢?

三步:

1. 使用import 指令引入组件,指定好组件的位置

2. 在Vue实例中注册好组件

3. 在需要用的地方,使用<组件名>的方式使用组件

2.2 使用elementUI的组件实现左右组件功能

直接看文档,没什么好说的:

 

然后就能产生这种效果了:

2.3 使用事件机制进行组件通信

1. 为分类树组件中的树节点绑定单击事件

使得一点击,就能获取到树节点的分类id

使用this.$emit(事件名,发送信息)的语法发送信息

2. 通过事件机制像父组件(分组组件)发送信息

父组件使用 @事件名的方式绑定事件

3. 父组件获取到信息,向后端获得分组列表信息,渲染好表格

三、后端部分

后端部分完全不要动,因为就是一个简单的单表查询接口

@ApiOperation("查询属性分组列表")
//@PreAuthorize("@ss.hasPermi('product:group:list')")
@GetMapping("/list")public TableDataInfo list(AttrGroup attrGroup) {startPage();List<AttrGroup> list = attrGroupService.list(new QueryWrapper<AttrGroup>(attrGroup));return getDataTable(list);}

还有这里若依的分页功能我看着有点问题,就是页面第一页只需要显示10条的,结果它显示了全部,但是暂时还不知道怎么解决,有知道的小伙伴,告诉我一下,谢谢!! 

四、总结

这次主要是学习了前端子父组件间的交互,子组件如何向父组件发送消息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/26064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rpc异步日志模块

Rpc异步日志模块作用 在一个大型分布式系统中&#xff0c;任何部署的分布式节点都可能发生崩溃&#xff0c;试想如果用普通的办法&#xff0c;即先排查哪个节点down掉了&#xff0c;找到down掉的节点后采取调试工具gdb调试该节点&#xff0c;进而排查宕机的原因。这中排查方法…

【LeetCode】地下城游戏(动态规划)

地下城游戏 题目描述算法分析编程代码 链接: 地下城游戏 题目描述 算法分析 编程代码 class Solution { public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m dungeon.size();int n dungeon[0].size();vector<vector<int>> d…

【flink】Chunk splitting has encountered exception

执行任务报错&#xff1a; Chunk splitting has encountered exception 错误信息截图&#xff1a; 完整的错误信息&#xff1a; 16:30:43,911 ERROR org.apache.flink.runtime.source.coordinator.SourceCoordinator [SourceCoordinator-Source: CDC Sourceorg.jobslink.flink…

百度智能创做AI平台

家人们好&#xff0c;在数字化时代&#xff0c;人工智能正引领着一场前所未有的创新浪潮。今天&#xff0c;我们将为大家介绍百度智能创做AI平台&#xff0c;这个为创意赋能、助力创作者的强大工具。无论你是创意工作者、内容创作者&#xff0c;还是想要释放内心创造力的个人&a…

Redis 单线程VS多线程

面试题 redis到底是单线程还是多线程&#xff1f;IO多路复用是什么&#xff1f;redis为什么快&#xff1f; Redis单线程 是什么 Redis的版本很多3.x、4.x、6.x&#xff0c;版本不同架构也是不同的&#xff0c;不限定版本问是否单线程也不太严谨。 1、版本3.x &#xff0c;最…

面试测试开发被问到数据库索引不知道怎么办?

提出的问题 什么情况下创建索引&#xff0c;什么时候不需要索引&#xff1f; 索引的种类有哪些&#xff1f; 什么是索引 索引就是帮助数据库管理系统高效获取数据的数据结构&#xff0c;就好比一本书的目录&#xff0c;它可以帮我们快速进行特定值的定位与查找&#xff0c;…

最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!

使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到系统&#xff01; 最新版【V2.5.8】更新&#xff1a; 新增 MJ 官方图片重新生成指令功能同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom ou…

python_day18_socket客户端

客户端 import socket# 创建socket对象 socket_client socket.socket() # 链接服务器 socket_client.connect(("localhost", 19999))发消息 while True:# 发消息msg input("输入&#xff1a;")if msg exit:breaksocket_client.send(msg.encode("U…

GD32F103VET输出PWM波形

GD32F103VET将TIMER0_CH3映射到PE14引脚&#xff0c;使其输出PWM波形。测试时&#xff0c;使用示波器看PE14引脚输出的波形&#xff0c;效果更直观。 TIMER0之PWM输出引脚映射如下: TIMER0_REMAP[1:0]"00"(没有映射): TIMER0_CH0默认被映射到PA8引脚 TIMER0_CH1默认…

数据互通,版本管理优化图文档与BOM数据

在现代企业的产品开发过程中&#xff0c;图文档和BOM数据是不可或缺的关键要素。图文档记录了产品的设计和工程信息&#xff0c;而BOM数据则明确了产品所需物料的清单和规格。然而&#xff0c;由于数据的复杂性和版本变更的频繁性&#xff0c;图文档与BOM数据之间的协作和管理常…

【JavaEE进阶】Spring核心与设计思想

文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架?3. Spring框架学习的难点 二. Spring 核心与设计思想1. 什么是容器?2. 什么是IoC?3. Spring是IoC容器4. DI&#xff08;依赖注入&#xff09;5. DL&#xff08;依赖查找&#xff09; 一. Spring框架概述…

RocketMQ第二课-核心编程模型以及生产环境最佳实践

一、回顾RocketMQ的消息模型 ​ 上一章节我们从试验整理出了RocketMQ的消息模型&#xff0c;这也是我们使用RocketMQ时最直接的指导。 二、深入理解RocketMQ的消息模型 1、RocketMQ客户端基本流程 <dependency><groupId>org.apache.rocketmq</groupId>&…

高效构建 vivo 企业级网络流量分析系统

作者&#xff1a;vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展&#xff0c;网络状况的良好与否已经直接关系到了企业的日常收益&#xff0c;故障中的每一秒都会导致大量的用户流失与经济亏损。因此&#xff0c;如何快速发现网络问题与定位异常流量已经成为大型企…

dubbo之基础知识

Dubbo 官网地址&#xff1a;Apache Dubbo Dubbo 是一款易用、高性能的 WEB 和 RPC 框架&#xff0c;同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践 作用 1.远程方法调用 2.容错和负载均衡 3.提供服务的自动注册与发现 为什么需要…

One-4-All: Neural Potential Fields for Embodied Navigation 论文阅读

论文信息 题目&#xff1a;One-4-All: Neural Potential Fields for Embodied Navigation 作者&#xff1a;Sacha Morin, Miguel Saavedra-Ruiz 来源&#xff1a;arXiv 时间&#xff1a;2023 Abstract 现实世界的导航可能需要使用高维 RGB 图像进行长视野规划&#xff0c;这…

【Spring】AOP切点表达式

文章目录 1、语法2、通配符3、execution4、within5、annotation6、args7、args8、bean9、this10、target11、target12、within13、表达式组合14、补充 1、语法 动作关键词(访问修饰符 返回值 包名.类/接口名 .方法名(参数)异常名) 举例&#xff1a; execution(public User c…

AIGC:【LLM(五)】——Faiss:高效的大规模相似度检索库

文章目录 一.简介1.1 什么是Faiss1.2 Faiss的安装 二.Faiss检索流程2.1 构建向量库2.2 构建索引2.3 top-k检索 三.Faiss构建索引的多种方式3.1 Flat &#xff1a;暴力检索3.2 IVFx Flat &#xff1a;倒排暴力检索3.3 IVFxPQy 倒排乘积量化3.4 LSH 局部敏感哈希3.5 HNSWx 一.简介…

flask------消息闪现 flash

1介绍 flask提供了一个非常有用的flash()函数&#xff0c;它可以用来“闪现”需要提示给用户的消息&#xff0c;比如当用户登录成功后显示“欢迎回来&#xff01;”。在视图函数调用flash()函数&#xff0c;传入消息内容&#xff0c;flash&#xff08;&#xff09;函数把消息存…

TPlink DDNS 内网穿透?外网访问设置方法

有很多小伙伴都想知道&#xff1a;TPlink路由器怎么设置DDNS内网穿透&#xff1f;今天&#xff0c;小编就给大家分享一下TPlink DDNS 外网访问设置方法&#xff0c;下面是图文教程&#xff0c;帮助新手快速入门DDNS设置。 本文介绍的是云路由器TP-LINK DDNS的设置方法。TP-LIN…

R-Meta分析教程

详情点击链接&#xff1a;R-Meta模型教程 一&#xff1a;Meta分析的选题与文献计量分析CiteSpace应用 1、Meta分析的选题与文献检索 1)什么是Meta分析&#xff1f; 2)Meta分析的选题策略 3)文献检索数据库 4)精确检索策略&#xff0c;如何检索全、检索准 5)文献的管理与…