动态实现面包屑

需要安装vuex:npm i vuex -S    安装vue-router:npm install vue-router -S

// Header.vue
<template>
   <!--面包屑-->
   <el-breadcrumb separator="/" style="display: inline-block; margin-left: 10px">  <!--行内块元素-->
        <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
        <el-breadcrumb-item>{{ currentPathName }}</el-breadcrumb-item>
   </el-breadcrumb>
</template>
<script>
export default {
    name: "Header",
    computed:{
        currentPathName(){
            return this.$store.state.currentPathName    //需要监听的数据
        }
    },
    watch:{  //监听路由变化
        currentPathName(newVal,oldVal){
            console.log(newVal)
        }
    },
}
</script>

// router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import store from "@/store";
Vue.use(VueRouter)
const routes = [
    {
        path: '/',
        name: 'Manage',
        component: () => import('../views/Manage.vue'),
        redirect:'/home',
        children: [
            {
                path: 'home', name: '首页', component: () => import('../views/Home.vue')
            },
            {
                path: 'user', name: '用户管理', component: () => import('../views/User.vue')
            },
        ]
    },
]
const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    routes
})
// 路由守卫
router.beforeEach((to,form,next)=>{
    localStorage.setItem("currentPathName",to.name)   //设置当前的路由名称
    store.commit('setPath')   //出发store的额数据更新
    next()  //放行
})
export default router
// store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    currentPathName: ''
  },
  mutations: {
    setPath (state) {
      state.currentPathName = localStorage.getItem("currentPathName")
    }
  }
})
export default store

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值