vue使用element-ui,页面刷新,导航栏选中问题

当你在使用纵向导航时,刷新了页面,左侧导航显示了默认的选项,导航发生了变化,而路由及页面并未改变,那怎么让它选中路由的页面呢

:default-active="activeIndex"
 data() {
      return {
        activeIndex: '1',
      };
    },

第一种方法:

把data中的activeIndex去除,改为计算属性,这一步解决纵向导航栏的问题

computed: {
    activeIndex() {
      const arr = this.$route.path.split('/')
      console.log(arr) //根据你的情况看在第几项
      if (arr[1] === 'page2') {
        return '/page2'
      } else if (arr[1] === 'page3') {
        return '/page3'
      } else {
        return '/'
      }
    }
  },

第一种看起来麻烦了点,但也能解决

第二种方法:

<el-menu
   :default-active="$route.path"
   class="menu"
   @select="handleSelect"
 >
   <el-menu-item index="/">
     <i class="el-icon-menu"></i>
     <span slot="title">page1</span>
   </el-menu-item>
   <el-menu-item index="/page2">
     <i class="el-icon-document"></i>
     <span slot="title">page2</span>
   </el-menu-item>
   <el-menu-item index="/page3">
     <i class="el-icon-setting"></i>
     <span slot="title">page3</span>
   </el-menu-item>
 </el-menu>

设置:default-active="$route.path"
让index等于路由

handleSelect (data) {
  this.$router.push({ path: data })
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!下面是一个基于Vue.js和Element UI的多功能首页的示例: 1. 在src/views文件夹下创建Home.vue组件,作为首页的主要内容。 ```vue <template> <div class="home"> <h1>Welcome to Home Page</h1> <!-- 添加你想要展示的内容 --> </div> </template> <script> export default { // 组件逻辑代码 } </script> <style scoped> /* 组件样式 */ </style> ``` 2. 在src/components文件夹下创建Navbar.vue组件,作为顶部导航。 ```vue <template> <nav class="navbar"> <ul> <li><a href="#">Home</a></li> <!-- 添加其他导航项 --> </ul> </nav> </template> <script> export default { // 组件逻辑代码 } </script> <style scoped> /* 组件样式 */ </style> ``` 3. 在src/App.vue文件中,将Navbar组件和Home组件添加到首页。 ```vue <template> <div id="app"> <Navbar /> <router-view /> </div> </template> <script> import Navbar from './components/Navbar.vue' export default { name: 'App', components: { Navbar } } </script> <style> /* 全局样式 */ </style> ``` 4. 在src/main.js文件中,添加Element UI的引入和全局样式。 ```javascript import Vue from 'vue' import App from './App.vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) Vue.config.productionTip = false new Vue({ render: h => h(App), }).$mount('#app') ``` 现在,你可以在Home.vue组件中添加任何你想要展示的内容,比如轮播图、卡片、列表等等。在Navbar.vue组件中,你可以添加其他导航项并进行相应的路由配置。 这个示例只是一个基本的多功能首页的示例,你可以根据具体的需求进行扩展和修改,添加更多的功能和组件。希望这个示例对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值