pinia储存

1、stores下新建自己的js
stores/menu.js

import { ref } from 'vue'
import { defineStore } from 'pinia'

export const usetopMenuStore = defineStore('topMenu', () => {
  const menuList = ref([])
  function getMenuList() {
    //此处为从后台获取的数据
    menuList.value = [
     { id: 1, name: '0.1元专区' },
     { id: 2, name: '儿科用药' },
     { id: 3, name: '补益安捭' },
     { id: 4, name: '肠胃消化' },
     { id: 10, name: '元专区' },
     { id: 20, name: '儿科用药' },
     { id: 30, name: '补益安捭' },
     { id: 40, name: '肠胃消化' },
     { id: 21, name: '儿科用药' },
     { id: 31, name: '补益安捭' },
     { id: 41, name: '肠胃消化' }
    ];
  }
  return { menuList, getMenuList }
})

2、触发getMenuList方法从后台获取数据

import { onMounted } from "vue";
import { usetopMenuStore } from "@/stores/menu.js";
onMounted(() => {
  usetopMenuStore().getMenuList();
});

3、使用menuList中数据
active-class="active" 添加激活状态下样式

 <div class="item" v-for="item in menuStore?.menuList" :key="item.id">
      <RouterLink active-class="active" :to="`/classify/${item.id}`"> {{ item.name }}</RouterLink>
 </div>

<script setup>
import { ref, onMounted } from "vue";
import { usetopMenuStore } from "@/stores/menu.js";
const menuStore = usetopMenuStore();
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 3,284评论 0 5
  • 为了让我有一个更快速、更精彩、更辉煌的成长,我将开始这段刻骨铭心的自我蜕变之旅!从今天开始,我将每天坚持阅...
    李薇帆阅读 1,912评论 0 3
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,355评论 0 1
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 517评论 0 1
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 533评论 0 0