所有分类
  • 所有分类
  • 后端开发
Vue.js神奇之处:MVVM模式下的修bug利器,代码分割轻松搞定

Vue.js神奇之处:MVVM模式下的修bug利器,代码分割轻松搞定

Vue.js打包后为什么会有逻辑变化?有些Vue.js组件和插件会在打包后出现逻辑变化。这是由于在打包时,编译器将Vue.js的组件和插件文件合并为一个文件,并将其优化。如何解决Vue.js打包后的逻辑变化?通过webpack的配置,我们可

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'),
      })
  }
}

原文链接:https://www.icz.com/technicalinformation/web/2024/03/12472.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?