Vue2在一个页面内动态切换菜单显示对应的路由组件,Vue2动态切换菜单与路由组件的页面交互功能展示

马肤

温馨提示:这篇文章已超过469天没有更新,请注意相关的内容是否还可用!

Vue 2能够实现在一个页面内动态切换菜单显示对应的路由组件。通过使用Vue的动态组件和路由功能,开发者可以根据用户的选择或页面状态,动态地加载和切换不同的路由组件,从而改变菜单的显示内容。这种特性使得Vue应用更加灵活,用户体验更加流畅。用户可以通过点击菜单项,触发相应的路由组件的加载和显示,实现页面的快速切换和内容的动态更新。

Vue2在一个页面内动态切换菜单显示对应的路由组件,Vue2动态切换菜单与路由组件的页面交互功能展示 第1张

import { menulist } from "@/api/pmc/MenuTab";
export default {
  data() {
    return {
      activeName: 'second', // 当前显示的tab的标签名
      currentComponent: '', // 当前组件的名字
      list: [], // 菜单数组
      curdizhi: '', // 当前菜单的路径,"pmc/DeptBaseInfo/index"
      deptId: '', // 公司的id,从路由地址传过来
    };
  },
  components: {},
  computed: {
    asyncComponent() {
      // 动态导入组件的逻辑
      console.log("动态加载组件路径:",@/views/${this.curdizhi});
      return () => import(@/views/${this.curdizhi}); // 使用动态导入语法
    }
  },
  created() {
    this.deptId = this.$route.query.deptId; // 获取路由中传过来的deptId参数
    console.log("页面地址传来的参数:", this.deptId);
    // 获取菜单列表
    this.getList();
  },
  methods: {
    /** 查询菜单列表 */
    getList() {
      this.loading = true; // 假设loading是数据加载的标识,这里需要您自行定义或引入相关逻辑
      menulist().then(response => {
        this.loading = false; // 加载完成,设置loading为false
        console.log("菜单列表response", response); // 打印响应数据
        this.list = response.rows; // 设置菜单数组为响应数据中的rows字段
        if (response.rows.length > 0) { // 如果响应数据中有数据,则进行后续操作
          let firstMenuItem = response.rows[0]; // 获取第一个路由对象
          this.activeName = firstMenuItem.signName; // 设置当前显示的标签名
          this.curdizhi = firstMenuItem.dictPath; // 设置当前菜单的路径为第一个菜单项的路径
        } else {
          // 处理没有数据的情况,例如显示提示信息或默认组件等
        }
      });
    },
    // tab切换点击事件
    handleClick(tab, event) {
      console.log("点击的第几项index", tab.index); // 打印点击的索引值
      let index = tab.index; // 获取点击的索引值
      let currentMenuItem = this.list[index]; // 获取当前点击的菜单项信息
      this.curdizhi = currentMenuItem.dictPath; // 更新当前菜单的路径为点击的菜单项的路径
      // 根据当前菜单的路径动态加载对应的组件并显示在页面上,这里可以使用Vue的异步组件和key属性来实现切换效果,具体实现方式需要根据您的项目结构和框架来确定,这里只是一个大致的思路。
    }
  }
};

上述代码中的注释部分需要根据您的实际情况进行调整和完善,关于动态加载组件的部分,具体的实现方式可能因项目结构和使用的框架而有所不同,您需要根据自己的项目情况进行调整,确保动态加载组件的逻辑能够正确工作。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码