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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,可以使用异步组件来实现组件动态。异步组件允许在需要时按需加载组件,而不是在应用程序初始化时立即加载所有组件。这可以提高应用程序的初始加载性能。 有多种方式可以实现组件动态加载,下面介绍两种常用的方法: 1. 使用`Vue.component`方法和`import`关键字: ```javascript // 异步加载组件 const AsyncComponent = () => import('./AsyncComponent.vue'); // 注册异步组件 Vue.component('async-component', AsyncComponent); ``` 在上述示例中,通过import语句异步加载组件文件(如`AsyncComponent.vue`),然后使用`Vue.component`方法注册异步组件。 2. 使用动态import语法和`resolveComponent`函数: ```javascript // 异步加载组件 const AsyncComponent = () => import('./AsyncComponent.vue'); // 在需要使用的地方动态渲染组件 const component = resolveComponent('async-component'); ``` 在上述示例中,使用动态import语法异步加载组件文件,然后使用`resolveComponent`函数获取异步组件的引用,可以在需要的地方进行动态渲染。 无论使用哪种方法,异步组件在初次渲染时不会立即加载,而是在组件被访问或需要时才会进行加载。这样可以减少初始加载时间并提高应用程序的性能。 需要注意的是,动态加载组件可能会导致一些额外的配置和构建步骤,如Webpack的代码分割和按需加载配置。请确保在使用动态加载组件时,已正确配置构建工具和打包工具。 总结:以上是Vue中实现组件动态加载的常见方法。通过使用异步组件,可以按需加载组件,提高应用程序的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值