Vue+Element-ui 导航栏和面包屑联动

第一步:创建vuex实例

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

第二步:创建路由实例

import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '@/store'

Vue.use(VueRouter)

const routes = [
  {
    path:'/',
    component: () => import('../views/Manage.vue'),
    redirect: '/home',
    children:[
      {path: 'home', name: '首页', component: () => import('../views/Home.vue')},
      {path: 'user', name: '用户管理', component: () => import('../views/User.vue')},
    ]
  },
  {
    path: '/about',
    name: 'About',
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

router.beforeEach((to,from,next) => {
  localStorage.setItem("currentPathName", to.name)  //存储当前的路由名称,为了在Header组件中使用
  store.commit('setPath') // 触发store的数据更新
  next() // 放行
})

export default router

第三步:全局引入

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

import request from './utils/request';


Vue.config.productionTip = false
Vue.use(ElementUI, {size:'small'})

Vue.prototype.request = request

new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app')

第四步:使用

<!-- 面包屑 -->
<el-breadcrumb separator="/" style="display:inline-block; margin-left: 10px">
   <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
   <el-breadcrumb-item>{{currentPathName}}</el-breadcrumb-item>
</el-breadcrumb>
computed: {
   currentPathName () {
       return this.$store.state.currentPathName
   }
},

注意:vue2 --> vuex3; vue3 --> vuex4

版本不对呀会出现如下问题

 

 学习时参考:程序员青戈的小白做毕设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值