• vueX 配合路由导航配置动态路由


    1.vueX 主要是全局定义存储数据,方法的位置  通过方法 来改变数据。

    2.安装vueX    npm install vuex --save

    3. 在新建的store/index.js中 引入文件

         import Vuex from 'vuex'

         Vue.use(Vuex);
    4. 在main.js中全局引入  store/index.js 
        import store from './store/index'
    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
    })
     
     
    导航守卫 就是利用addRouter控制路由权限
    1.定义普通路由 和权限路由 普通路由可以随便使用 
    import Vue from 'vue'
    import Rrouter from 'vue-router'
    import index from '@/view/demo/index.vue'
    Vue.use(Rrouter)

    //普通路由
    export const constantRouter = [
      {
        path: '/',
        component: index
      },
      {
        path: "/xys",
        component: () => import('@/view/demo/xys.vue')
      },
    ]
    //带权限的路由 
    export const ansyncRouter = [
      {
        path: "/qxly",
        component: () => import('@/view/qxly/qxlyindex.vue')
      },
    ]

    export default new Rrouter({
      routes: constantRouter
    });
    2.使用权限路由是利用  router的 addRoutes 方法往路由添加 权限路由 
    <template>
      <div id="app">
        <div>
          <div>计算属性</div>
          <div>总分值:{{ numlist }}</div>
          <div>
            <router-link to="/xys">跳转</router-link>
          </div>
          <div v-show="$store.state.islogin">
            <router-link to="/qxly">跳转守卫路由</router-link>
          </div>
          <router-link to="/qxly">跳转守卫路由------------没有添加的守卫无法跳转</router-link>
          <div @click="btnchange">权限路由</div>
        </div>
        <div class="tel">
          <div class="dianji" @click="change">蒙版</div>
        </div>
      </div>
    </template>

    <script>
    import { ansyncRouter } from "../../router/index";
    export default {
      data() {
        return {
          datalist: [
            { id: 123 },
            { id: 123 },
            { id: 123 },
            { id: 123 },
            { id: 123 },
          ],
          isshow: true,
        };
      },
      computed: {
        numlist() {
          let total = 0;
          for (let tttc of this.datalist) {
            total += tttc.id;
          }
          return total;
        },
      },
      methods: {
        change() {
          console.log(999);
        },
        btnchange() {
          console.log(this.$router);
          this.$store.commit("alogin");
          this.$router.addRoutes(ansyncRouter);
        },
      },
    };
    </script>

    <style>
    .tel {
       100px;
      height: 100px;
      background: red;
    }
    </style>
  • 相关阅读:
    swift
    swift
    swift
    swift
    swift
    swift
    swift
    选择排序
    组合 和 继承
    Android中使用LitePal操控SQLite数据库
  • 原文地址:https://www.cnblogs.com/shenbo666/p/15233544.html
Copyright © 2020-2023  润新知