Vue.js在前端开发中的应用
用Vue.js做网页开发简直太给力了!它主打的是MVVM模式,数据搞定视图,很神奇!最棒的是它可以把代码分割得很小块,页面和数据自顾自己,修个bug变得超简单!而且还能随便移到别的地方去,真的太方便!再加上超多指令、插件和工具,让你快速做成好看又好用的网页
Vue.js打包后的问题
想把Vue.js软件搬到服务器,咱们得先把代码打个包,这样不仅可以缩小文件体积、提速,还能加点儿安全性!不过,这一挤一搓,可能有的功能会变得不太清晰明了,让人头疼。比如,动态路由啊、动态组件还有事件监听之类的,甚至自己DIY的命令都有可能失灵,各种小麻烦就来了。
分析Vue.js打包后逻辑变化的原因
在 Vue.js 的组件和插件打包时,编译器会把它们装到一个小包里,不过这么一来,有些功能可能就有点儿费劲了。比如名字变了,找不到了;或者找模块用到的全局函数出了点儿岔子;还有可能因为文件目录搞混了,逻辑全搞砸了。
解决Vue.js打包后逻辑变化的方案
一、使用识别符解决组件名更改问题
找不着模块可能是你组件换了名儿!别急咱动手设置下。到webpack里找到Resolve.alias那项,给vue.config.js或者webpack.config.js加点东西,把组件的$options.name换成分文件就成~
搞定这个项目就是把配置文件调好了,没毛病!
module.exports = { resolve: { alias: { "vue$": "vue/dist/vue.esm.js" } } }
怎么让所有使用同个模块的网页都能用上这个module?
有时候多个模块要用到类似的功能或者数值,怎么办?别急,Webpack的ProvidePlugin就能搞定!在你的webpack.config.js里简单设置下,然后这些全局的东西就能被大家分享咯。所以说,虽然有这么多模块,但是只要做好这一小步,事情就能轻松解决!
这么做后,就不用愁模块间找不着所需的东东了,防止出现因为少个模块而混乱不堪的情况。
三、使用vue.config.js进行配置
直接改下vue.config.js的设置就好,轻松解决vue.js打包后逻辑变化问题。比如,用个resolve.alias来解决文件路径小麻烦,以后就不会再因为很多父组件都要用到相同子组件却要反复编译了。
const webpack = require("webpack") module.exports = { plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "window.jQuery": "jquery" }) ] }
这样做可以加快整个项目进程,也能避免因为编译次数太多而产生的问题。
四、优化vue-loader缓存机制
有时候在用Vue.js搭网页时,碰到很多嵌套组件的情况,那就要分别给每个组件创建实例,然后还要把这些小模板编译出来。这跟家里洗油烟机差不多,虽然比较麻烦点,但至少能避免让屋子里乌烟瘴气!
module.exports = { runtimeCompiler: true, configureWebpack: { resolve: { alias: { '@components': resolve('src/components'), '@views': resolve('src/views'), } }, externals:{ 'vue': 'Vue', 'element-ui': 'ELEMENT', 'vue-router': 'VueRouter', 'axios': 'axios', 'vuex': 'Vuex' }, } }
为了让开发过程更爽快,同时不让性能下降得那么厉害,我们要借助 webpack 的 vue-loader 插件,把之前编译好的东西存在缓存里头,下次再用时直接拿来用,这样速度就能飞起来!
总结与展望
记住这几招,别怕Vue.js打包出问题!放心用新版,代码认真看,基本能避坑。
别慌前端发展飞速,Vue.js打包都有新招了!这下咱们可以轻轻松松做个超棒的网页应用咯!
module.exports = { chainWebpack: config => { config.module .rule('vue') .use('cache-loader') .loader('cache-loader') .options({ cacheDirectory: path.resolve(__dirname, 'node_modules/.cache/vue-loader'), }) } }
评论0