当前位置: 首页 > Web前端 > HTML5

【前端奶酪树】Vue-路由懒加载-实践中遇到的问题摘录

时间:2023-04-05 10:51:19 HTML5

背景:参考Vue官方文档实现路由懒加载遇到的问题。具体文章请点击这里查看参考链接:Vue-loader官网介绍:Vue路由的懒加载首先,异步组件可以定义为一个返回Promise的工厂函数(该函数返回的Promise应该解析componentitself):constFoo=()=>Promise.resolve({/*componentdefinitionobject*/})其次,在Webpack2中,我们可以使用动态导入语法来定义代码分割点(splitpoints):import('./Foo.vue')//returnPromiseNote如果您使用的是Babel,则需要添加syntax-dynamic-import插件,以便Babel正确解析语法。结合这两者,这就是如何定义一个可以由Webpack自动代码拆分的异步组件。constFoo=()=>import('./Foo.vue')路由配置不需要改变,照常使用Foo即可:constrouter=newVueRouter({routes:[{path:'/foo',component:Foo}]})Vue-Cli3中路由延迟加载的实现importVuefrom'vue'importRouterfrom'vue-router'importHomefrom'./views/Home.vue'Vue.use(Router)export默认新路由器({模式:'历史',基地:process.env.BASE_URL,路线:[{路径:'/',名称:'家',组件:主页},{路径:'/关于',名称:'about',//路由级别的代码拆分//这会为此路由生成一个单独的块(about.[hash].js)//当访问路由时它是延迟加载的。组件:()=>import(/*webpackChunkName:"about"*/'./views/About.vue')},{path:'/organiser',name:'organiser',component:()=>import(/*webpackChunkName:"organiser"*/'./views/Organiser.vue')}]})问题1:无法读取nullPackage.json的属性'bindings':"@babel/core":"^7.0.1","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/preset-env":"^7.0.0",Change{"presets":["env"]}To{"presets":["@babel/preset-env"]}问题二:错误:vue-loaderwasusedwithoutthecorrespondingplugin修改webpack配置文件constVueLoaderPlugin=require('vue-loader/lib/plugin');module.exports={devtool:"sourcemap",entry:'./js/entry.js',//入口文件output:{filename:'bundle.js'//打包文件},plugins:[//确保包含神奇的插件newVueLoaderPlugin()],module:{...}}问题3:模块解析失败:意外字符'#'//webpack.config.js->module.rules{测试:/\.scss$/,使用:['vue-style-loader',{loader:'css-loader',options:{modules:true}},'sass-loader']}