Vue组件分割 动态加载组件

vue开发的项目 组件太多,打包的一个app.js文件太大,网页加载太慢怎么办?

将组件分模块打包,按需加载

vue官网有异步加载组件,我在laravel里面试了下,没成功,可能是laravel的webpack配置问题。

laravel的webpack配置太长不看。

(可以的话laravel+vue的项目,可以考虑不用laravel自带的vue配置,自己重新弄个vue的前端项目,自己写webpack配置,这样自由灵活度高,还能学webpack)

回到主题,laravel自带的vue项目可以使用babel的 syntax-dynamic-import 插件。使用步骤:

1、安装

npm install --save-dev babel-plugin-syntax-dynamic-import

2、在项目根目录加一个".babelrc"文件(laravel的前端项目根目录在:resouces/assets/js)

里面的内容是:

{
"plugins": ["syntax-dynamic-import"]
}


3、异步加载组件

Vue.component('componentName', ()=>import('./component/example.vue') )

当然,大部分项目都不会这么写组件,都有路由,路由中就要这么写

    {
path:"/home",
component: ()=>import('./components/home'),
},

这样就大功告成了,就不会只打包成一个app.js

而是会有几个路由就打包成几个js+app.js,这样进不同的模块,就会按需加载不同的js

只是分割的js被放到了public文件夹,而不是public/js,不知道这要怎么配置,有知道的希望可以告诉我

总结一下就是:
1、 npm install 那个插件
2、 js根目录加个插件配置文件
3、 修改路由里面 component写法

之后再npm run dev的时候,插件会自动根据你路由分别打包,而不是只有一个app.js

( app.js依旧有,php页面不用变,依旧只引用这个app.js就够了,webpack会帮你解决按需加载的问题 )


翻译,原文地址:

https://www.bdtunnel.com/2017/12/how-to-load-component-when-needed-with.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值