解决vue打包之后空白问题和路由问题

1.打包之后打开dist之后页面空白

出现该问题的大概率原因是打包之后,原先图片或者路由等的路径发生改变,在结合百度搜索之后找到的解决方法,希望能帮到你。

解决方法 修改vue.config,js文件(修改成如下形式即可)

const { defineConfig } = require('@vue/cli-service')

const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
module.exports = defineConfig({
  transpileDependencies: true,

  // parallel:false,
  // outputDir:'dist',
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  
})

在这里如果出现model缺失一般提示的是node-polyfill-webpack-plugin缺失

这里直接npm install node-polyfill-webpack-plugin --save即可

2.路由无法使用

解决方法将路由方式改为hash路由

注意观察第一行导包导的包是createWebHashHistory,而且也要在下面那个router中将history改为createWebHashHistory。

import { createRouter, createWebHashHistory } from 'vue-router'


const routes = [

  
  { path: '', component: () => import("../views/Home.vue") },

  { path: '/home', component: () => import("../views/Home.vue") },
  {
    path: '/page', component: () => import("../views/Page.vue"),
    children: [
      {
        path:'',
        component: () => import("../views/mycart/CreateCart.vue")
      },
      {
        path: 'createcart',
        component: () => import("../views/mycart/CreateCart.vue")
      },
      {
        path: 'cart',
        component: () => import("../views/mycart/Cart.vue")
      },
      {
        path: 'user',
        component: () => import("../views/user/User.vue")
      },
      {
        path:'order',
        component:()=>import("../views/order/Order.vue")
      }
    ]




  },


]

const router = createRouter({
  history: createWebHashHistory(process.env.BASE_URL),
  routes,

})

export default router

vue三种路由方式

1.hash模式

使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载,其显示的网路路径中会有 “#” 号,有一点点丑。这是最安全的模式,因为他兼容所有的浏览器和服务器。

2.history模式

美化后的hash模式,会去掉路径中的 “#”。依赖于Html5 的history,pushState API,所以要担心IE9以及一下的版本,感觉不用担心。并且还包括back、forward、go三个方法,对应浏览器的前进,后退,跳转操作。就是浏览器左上角的前进、后退等按钮进行的操作。

1

2

3

4

history.go(-2);//后退两次

history.go(2);//前进两次

history.back(); //后退

hsitory.forward(); //前进

但是history也是有缺点的,不怕前进后退跳转,就怕刷新(如果后端没有准备的话),因为刷新是实实在在地去请求服务器了。

总结一下

  • hash模式(vue-router默认模式URL后面带#)使用URL的hash值来作为路由,支持所有浏览器 缺点:只能改变#后面的来实现路由跳转。
  • history模式(通过mode: 'history’来改变为history模式)HTML5 (BOM)History API 和服务器配置 缺点:怕刷新如果后端没有处理这个情况的时候前端刷新就是实实在在的请求服务器这样消耗的时间很多还很慢。

3.abstract模式

适用于所有JavaScript环境,例如服务器端使用Node.js。如果没有浏览器API,路由器将自动被强制进入此模式。

然后在

1

const router = new VueRouter({routes, mode:'hash|history|abstract',})

这里进行切换。

这样基本问题基本解决,如果还有问题,请多多百度查找。

你可能感兴趣的:(Vue,vue.js,javascript,前端)