zoukankan      html  css  js  c++  java
  • 移动端页面开发前准备工作+vue添加动态路由+store刷新

    一、移动端页面开发前准备工作

    <!--禁止页面缩放-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    html{
        font-size: 100px;
        height: 100%;
    }
    body {
        height: 100%;
        margin: 0;
        font-size: 0.16rem;
    }

     二、添加动态路由

    1、登录成功需添加路由(在登录页处添加)

    routerjson.map(li => {
      let component = li.component
      // li.component = () => import("../pages/" + component)
      li.component = (resolve) => require([`../pages/${component}`], resolve)
    })
    window.sessionStorage.setItem("token", "value")
    this.$router.addRoutes(routerjson)

    2、刷新页面需添加路由(在路由配置文件处添加)

    if (window.sessionStorage.getItem("token")) {
      routerjson.map(li => {
        let component = li.component
        // li.component = () => import("../pages/" + component)
        li.component = (resolve) => require([`../pages/${component}`], resolve)
      })
      router.addRoutes(routerjson)
    }

    注意:routerjson为异步请求所得到的路由配置数据

     三、store刷新

    1、登录成功需设置数据

    2、刷新页面需设置数据

    import Vue from 'vue'
    import Router from 'vue-router'
    import p1 from '../pages/p1'
    import routerjson from "../utils/routejson";
    import storejson from "../utils/storejson";
    import store from "../store";
    
    Vue.use(Router)
    
    const router = new Router({
      routes: [{
        path: '/',
        redirect: "/p1"
      }, {
        name: 'p1',
        path: '/p1',
        component: p1
      }]
    })
    
    if (window.sessionStorage.getItem("token")) {
      setTimeout(function () {//模拟异步请求
        routerjson.map(li => {
          let component = li.component
    // li.component = () => import("../pages/" + component) li.component = (resolve) => require([`../pages/${component}`], resolve) }) router.addRoutes(routerjson) }, 5000) } router.beforeEach(async (to, from, next) => { if (window.sessionStorage.getItem("token")) { await new Promise(resolve => {//模拟异步请求 setTimeout(function () { store.commit("setStorejson", storejson) resolve() }, 3000) }) } next() }) export default router

     四、请求失败返回登录页

    import Vue from "vue"
    import Axios from "axios"
    import router from "../router"
    
    // Axios.defaults.baseURL="http://www.baidu.com"
    
    Axios.interceptors.request.use(req => {
        return req;
    }, err => {
        return Promise.reject(err);
    })
    
    Axios.interceptors.response.use(res => {
        if (res.data.code) {
            if (router.history.current.path != "/a1") {
                router.push({name: "a1"})
            }
        }
    
        return res;
    }, err => {
        if (router.history.current.path != "/a1") {
            router.push({name: "a1"})
        }
    
        return Promise.reject(err);
    })
    
    Vue.prototype.$axios = Axios
  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/linding/p/13281446.html
Copyright © 2011-2022 走看看