首页 > 其他分享 >Vue3学习(16) - 左侧显示分类菜单

Vue3学习(16) - 左侧显示分类菜单

时间:2024-02-12 14:11:25浏览次数:33  
标签:categorys 菜单 16 代码 分类 level1 Vue3 data

写在前面

和大家不太一样,我觉得今年的自己更加relax,没有亲戚要走,没有朋友相聚,也没有很好的哥们要去叙旧,更没有无知的相亲,甚至可以这么说没有那些闲得慌的邻居。

也可以说是从今天开始,算是可以进入自己的小世界,做自己想做的事,看看书,学习一下。

生活的精髓在于善待自己,用心感受每一刻的欢愉与宁静!

人生于世上有几个知己,多少友谊能长存,愿友谊常青!

菜单显示分类名

那么如何让菜单正常显示菜单内容呢?

1、任务拆解

  • 在页面加载就查出所有分类
  • 通过垂直菜单遍历出所有分类内容并显示

2、在页面加载就查出所有分类

即在onMounted种通过handleQueryCategory,此处可以复用分类列表中的代码,示例代码如下:

const level1 =  ref();
let categorys: any;
/**
 * 查询所有分类
 **/
const handleQueryCategory = () => {
  axios.get("/category/all").then((response) => {
    const data = response.data;
    if (data.success) {
      categorys = data.content;
      console.log("原始数组:", categorys);

      level1.value = [];
      level1.value = Tool.array2Tree(categorys, 0);
      console.log("树形结构:", level1.value);
    } else {
      message.error(data.message);
    }
  });
};

onMounted(() => {
    handleQueryCategory();
}

3、通过垂直菜单遍历出所有分类内容并显示

这块还是考察的是v -for循环遍历的知识点,示例代码如下:

<a-sub-menu v-for="item in level1" :key="item.id">
  <template v-slot:title>
    <span><user-outlined />{{item.name}}</span>
  </template>
  <a-menu-item v-for="child in item.children" :key="child.id">
    <MailOutlined /><span>{{child.name}}</span>
  </a-menu-item>
</a-sub-menu>

4、效果

写在最后

这部分的代码,是纯前端了, 代码扔太久了,只能看懂,但是自己写还是写不出来,我想这种状态,可能是很多新手,都会面临的问题吧。

有没有好的解决办法呢?

没有,在成功这条路上,永远是没有捷径可言的。

如不适应,去练习,大量练习,直到完全适应它即可。

标签:categorys,菜单,16,代码,分类,level1,Vue3,data
From: https://www.cnblogs.com/longronglang/p/18013893

相关文章

  • JOISC 2016 题解
    JOISC2016loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1一开始把题目看错了,还写了棵线段树。把询问离线,倒着扫一遍,就变成了求最长不上升子序列,用树状数组维护即可。提交记录D1T2来自Kubic的神仙做法。考虑Filp一个位置和剩下所有位置,记录每个数作为答案......
  • python3.9 + django4.1 + vue3 ,报错,无法访问配置的路由地址,Using the URLconf defined
    python3.9+django4.1+vue3,报错,无法访问配置的路由地址,UsingtheURLconfdefinedinStudentMgrBE.urls,DjangotriedtheseURLpatterns,inthisorder:-------------------------------------------------------------------------------无法访问 地址,报错如下: Us......
  • CF1628E Groceries in Meteor Town 题解
    题目链接点击打开链接题目解法感觉就是很多个套路组合出来,但我有些套路都不会/ll套路1看到从一点出发,到其他点的路径上的最大权,可以想到\(kruskal\)生成树(这提示我不仅是图可以用\(kruskal\)生成树,树也可以捏)我们建大根的\(kruskal\)生成树,那么将问题转化成了找一个......
  • Vite+Vue3项目如何获取环境配置,并解决前端跨域问题
    步骤根目录新建.env.development和.env.production文件package.json配置启动参数vite命令启动项目时,指定mode参数,加载vite.config.ts文件。"dev":"vite--host0.0.0.0--port8093--modedevelopment","prod":"vite--port8093--host0.0.0.0--modepr......
  • 题解 AT_mujin_pc_2016_c【オレンジグラフ】
    本文中点的编号从\(0\)开始。显然,题目中要求橙色的边构成极大的二分图。枚举二分图左右部分别有哪些点。特别地,钦定\(0\)号点是左部点。将所有跨左右部的边染为橙色,如果所有点通过橙色的边连通,就得到了一组合法的解;如果不连通,显然可以将更多的边染成橙色,使得所有点连通。//......
  • vue3 let,var,const区别
    在Vue3中,let、var和const都是用于声明变量的关键字区别:   var:在JavaScript中,var是声明变量的最常用的关键字。var声明的变量的作用域是函数级的,如果在函数内部声明的变量,其作用域将限制在函数体内部。如果在函数外部声明的变量,则其作用域将是全局的。   let:let也用于声明......
  • 题解 ABC336G【16 Integers】
    萌萌BEST定理练习题。赛时几乎做出来了,但写挂了,现在在火车上没事干就给补了。考虑建图,图中共有\(8\)个节点,节点的编号是\((\mathbb{Z}/2\mathbb{Z})^3\)的每个元素。对于每个四元组\((i,j,k,l)\in(\mathbb{Z}/2\mathbb{Z})^4\),在图中连\(X_{i,j,k,l}\)条\((i,j,k)\to(j......
  • 16-x美
    day16x美注意:这是其实是一个x美的点选验证。https://secure.elong.com/passport/login_cn.html?nexturl=https://www.elong.com/https://www.ishumei.com/trial/captcha.html1.必备知识点在开始逆向案例之前,先来学一些前置必备的技能。1.1动态无法调试网页定位到某个js......
  • CF1697F Too Many Constraints
    题意简述有一个长度为\(n\)的整数序列\(a\),值域为\([1,k]\),有\(m\)条限制:1ix,表示\(a_i\not=x\)2ijx,表示\(a_i+a_j\lex\)3ijx,表示\(a_i+a_j\gex\)试构造一个可能的\(a\),或报告无解。\(n,m\le2\times10^4,k\le10\)。分析看上去像是一个差分约束题,......
  • Leetcode 1691. 堆叠长方体的最大高度
    https://leetcode.cn/problems/maximum-height-by-stacking-cuboids/description/给你n个长方体cuboids,其中第i个长方体的长宽高表示为cuboids[i]=[widthi,lengthi,heighti](下标从0开始)。请你从cuboids选出一个子集,并将它们堆叠起来。如果widthi<=widthj......