vue2如何动态添加子路由

vue2如何动态添加路由
封装了两个路由,一个是普通用户的,一个是管理员的
但是不知道如何动态的添加子路由

img

img


main.js

img

img

在用户登录的时候,后台返回用户角色,根据用户角色进行判断,如果是普通用户的话,就将初始路由和userRoutes进行concat,否则就跟Mianroutes进行concat

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7741623
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【Vue2从入门到精通】详解Vue.js的15种常用指令及其使用场景
  • 除此之外, 这篇博客: vue 插件 滑块验证_一款基于vue开发的简单图片滑块验证码【使用笔记】中的 2. main.js 中引用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • import Vue from 'vue';
    import SlideVerify from 'vue-monoplasty-slide-verify';
    
    Vue.use(SlideVerify);
    
    1. 页面中使用(封装,直接可以拿去用)
    <template>
     <div>
       <p>安全验证</p>
       <a-card>
         <div class="page-slidecode">
           <!--    l:滑块的边长  
                   r:滑块突出圆的半径
                   w:canvas画布的宽
                   h:canvas画布的高
                   imgs:背景图数组
                   sliderText:滑块底纹文字
                   accuracy:滑动验证的误差范围,默认值为5
                   show:是否显示刷新按钮
       
                   success:验证码匹配成功的回调
                   fail:验证码未匹配的回调
                   refresh:点击刷新按钮后的回调函数
                   fulfilled:刷新成功之后的回调函数
        	  -->
           <slide-verify
             :l="42"
             :r="10"
             :w="310"
             :h="155"
             :imgs="bgimgs"
             @success="onSuccess"
             @fail="onFail"
             @refresh="onRefresh"
             ref="slideblock"
             :slider-text="text"
           ></slide-verify>
         </div>
       </a-card>
       <div class="yz-msg">{{ msg }}</div>
     </div>
    </template>
    
    <script>
    // import aa from "../../imgs/###.png"; //	如果使用网络图片资源就无需引入
    // import bb from "../../imgs/###.png"; //	如果使用网络图片资源就无需引入
    // import cc from "../../imgs/###.png"; //	如果使用网络图片资源就无需引入
    import imgList from "../../imgs//index.js";//单独封装一个图片存储文件
    export default {
     data() {
       return {
         msg: "",
         bgimgs: imgList,
         // bgimgs:[],	//	如果使用网络图片资源就用该值
         text: "向右滑动~",
         state: false,
       };
     },
     export default {
      name: 'App',
       data(){
           return {
               msg: '',
               text: '向右滑',
               // 精确度小,可允许的误差范围小;为1时,则表示滑块要与凹槽完全重叠,才能验证成功。默认值为5
               accuracy: 1,
           }
       },
       methods: {
           onSuccess(times){
              console.log('验证通过,耗时 +' times + '毫秒');
               this.msg = 'login success, 耗时${(times / 1000).toFixed(1)}s'
           },
           onFail(){
               console.log('验证不通过');
               this.msg = ''
           },
           onRefresh(){
               console.log('点击了刷新小图标');
               this.msg = ''
           },
           onFulfilled() {
               console.log('刷新成功啦!');
           },
           onAgain() {
               console.log('检测到非人为操作的哦!');
               this.msg = 'try again';
               // 刷新
               this.$refs.slideblock.reset();
           },
           handleClick() {
           	// 父组件直接可以调用刷新方法
               this.$refs.slideblock.reset();
           },
       }
    }
    

    在这里插入图片描述
    qw

  • 您还可以看一下 jason老师的vue通用后台管理课程中的 vue路由的使用小节, 巩固相关知识点