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

这篇具有很好参考价值的文章主要介绍了谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、总述

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目录下面,代表通用组件

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

<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 指令引入组件,指定好组件的位置

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

 谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

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

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

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

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

谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互),SpringBoot,谷粒商城,vue,spring boot,vue,项目

三、后端部分

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

@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条的,结果它显示了全部,但是暂时还不知道怎么解决,有知道的小伙伴,告诉我一下,谢谢!! 

四、总结

这次主要是学习了前端子父组件间的交互,子组件如何向父组件发送消息文章来源地址https://www.toymoban.com/news/detail-629794.html

到了这里,关于谷粒商城第十天-获取分类属性分组(前端组件抽取&父子组件交互)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谷粒商城第七天-商品服务之分类管理下的删除、新增以及修改商品分类

    目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端部分 2.1 删除功能 2.2 新增功能 2.3 修改功能 三、后端部分 3.1 删除接口 3.2 新增接口 3.3 修改接口 四、总结  删除和新增以及修改的前端无非就是点击按钮,就向后端发送请求,交与后端真正的执行相关操作。 具体来说,就是

    2024年02月15日
    浏览(41)
  • 谷粒商城第七天-商品服务之分类管理下的分类的拖拽功能的实现

    目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端实现 2.1 判断是否能进行拖拽 2.2 收集受影响的节点,提交给服务器 三、后端实现 四、总结 这个拖拽功能对于这种树形的列表,整体的搬迁是很方便的。但是其实现却并不是那么的简单。 花样主要体现在前端上面,前端有两

    2024年02月14日
    浏览(97)
  • 商城-学习整理-基础-商品服务API-属性分组(七)

    在admin数据库里面创建表sys_menus.sql 查看页面 根据逆向生成的代码,剩余的前端代码和后端代码自己写,根据接口文档去编写。 在前端modules下创建common目录,创建category.vue文件。 在product目录下,创建属性分组attrgroup.vue文件。最终做成的效果就是左边是一个菜单,右边是一个

    2024年02月14日
    浏览(30)
  • Vue3前端开发,如何获取组件内dom对象以及子组件的属性和方法

    Vue3前端开发,借助Ref来获取组件内dom对象,借助defineExpose编译宏可以获取到子组件的属性和方法。 app入口文件,我们作为父组件,在里面调用了自定义组件TestCom.vue。 先做了一个测试,借助于ref来访问自身的dom对象。如图所示是可以拿到的。 ref又称谓钩子函数,在vue2版本中

    2024年01月22日
    浏览(60)
  • 谷粒商城第三天-微服务中基本组件的使用 java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.cho

    目录 一、前言 二、学习的内容 一、Nacos的服务注册/发现 1. 导依赖,nacos-discovery java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.cho 2. 在application.yml中声明nacos服务器的ip地址和端口号,以及指定好服务的名称 3. 在启动类上面加上@EnableDiscoverClient 二、

    2024年02月09日
    浏览(82)
  • 谷粒商城实战(012 业务-商城业务)

    Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第203p-第p210的内容 介绍 这段除了210集都是商城业务,无太多可学习的,可跳过这7集,直接看第210集 一个页面需要获取多个 API 数据的情况 通常有两种主要的方式来处理:

    2024年04月17日
    浏览(38)
  • 谷粒商城(三)

    简介 全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选,它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene

    2024年02月10日
    浏览(46)
  • 谷粒商城-elasticsearch入门

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 MySQL中也有检索数据的方式,可是为什么不适合呢?因为术业有专攻,MySQL是专攻于数据

    2024年02月11日
    浏览(35)
  • 【笔记/后端】谷粒商城高级篇

    全文检索工具:快速储存、搜索和分析海量数据。 Index (索引) → Mysql的库 动词,相当于MySQL中的insert; 名词,相当于MySQL中的Database。 Type (类型) → Mysql的表(过时) 在Index中,可以定义一个或多个类型。类似于MySQL中的Table;每一种类型的数据放在一起。 Document (文档) →

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包