vue2 页面跳转其他页面后 选中项仍高亮

该文章展示了如何在Vue.js应用中,利用el-menu组件的default-active属性结合vue-router的路径判断,实现当跳转到特定页面时自动选择相应的菜单项。activeMenu方法检查当前路由,若匹配特定路径则返回新的选中路径,否则返回当前路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在菜单栏的组件中给 :default-active="getActive"事件判断是否是跳转其他页面 ------>代码如下

demo
<el-menu
  :default-active="activeMenu"
  .........
>
</el-menu>
script
activeMenu() {
      if (this.$route.path === '/index5/ruleCheck' || this.$route.path === '/index5/ruleDetail' || this.$route.path === '/index5/auditissue' || this.$route.path === '/index5/testBench' || this.$route.path === '/index5/ruleAttribute') {
        return '/index2/ruleDevelopment'
      } else {
        return this.$route.path
      }
    },

判断如果跳转到了想要跳转的页面时,返回要选中的那层路径,else是为了跳转其他页面时,对应导航栏要选中的选项。

你可以使用Vue Router来实现页面跳转,并且使用el-tree组件来动态设置选中节点的样式。 首先,确保你已经正确安装和配置了Vue Router和element-ui插件。 在Vue组件中,你可以通过`<router-link>`来创建一个跳转链接,例如: ```html <router-link to="/path">Go to Path</router-link> ``` 这将会生成一个点击的链接,点击后将会跳转到指定的路径。 接下来,关于el-tree组件,你可以使用`highlight-current`属性来设置选中节点的样式。你需要在每个节点的数据中添加一个字段来表示当前节点是否被选中,然后在`highlight-current`属性中指定该字段的名称。例如: ```html <el-tree :data="treeData" :props="{ label: 'name', children: 'children' }" :highlight-current="currentNodeId" ></el-tree> ``` 在上面的例子中,`treeData`是你的树形数据,其中每个节点都有一个`name`字段用于显示节点文本,`children`字段用于指定子节点。`currentNodeId`是一个用于表示当前选中节点的字段。 如果你想要动态设置选中节点的样式,可以使用`:highlight-method`属性。这个属性接收一个函数,根据节点数据返回一个布尔值来决定是否高亮该节点。例如: ```html <el-tree :data="treeData" :props="{ label: 'name', children: 'children' }" :highlight-current="currentNodeId" :highlight-method="highlightMethod" ></el-tree> ``` ```javascript data() { return { treeData: [ { id: 1, name: 'Node 1', children: [ { id: 2, name: 'Node 1.1' }, { id: 3, name: 'Node 1.2' } ] }, // ... ], currentNodeId: null }; }, methods: { highlightMethod({ node }) { return node.id === this.currentNodeId; } } ``` 在上面的例子中,`highlightMethod`是一个方法,根据当前节点的id与`currentNodeId`比较来决定是否高亮该节点。 最后,你可以在Vue组件中使用`this.$router.push()`方法来实现页面跳转。例如: ```javascript methods: { goToPath() { this.$router.push('/path'); } } ``` 当调用`goToPath()`方法页面将会跳转到指定的路径。 希望以上内容能帮助到你,如果有任何问题,请随提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值