laravel+vue优化vue单文件过大 app.js过大

博主最近在写laravel+vue+element的一个项目,因为不是很了解webpack所以踩了不少坑,其中就有vue单文件过大问题,于是在这里记录下解决方法。


主要思路是分为两点。

  1. 减少webpack打包体积,将不用修改的库用cdn引入。
  2. 使用vue-router路由懒加载

1.cdn引入


cdn引入不需要修改app.js
现在我们来写一下,使得我们可以从外部引入而不必使用自己的阿里云小水管慢慢加载。
推荐同学们一定要看完再到自己的项目上实践,不要看一点写一点。
首先,我们要让webpack不在打包我们上述的库,那么我们就需要改webpack的配置文件,在laravel中webpack的配置文件被分离,我们要找到项目根目录中的webpack.mix.js,在里面写上这些东西

mix.webpackConfig({
    externals: {
    	'vue': 'Vue',//这些是你不需要webpakc帮你打包的库
    	'vue-router': 'VueRouter',
    	'element-ui': 'ELEMENT',//这个比较坑 一开始我还以为是ElementUI结果就报错了XD
 	}
});

然后,我们要去index.blade.php(这个文件是我们的app.js文件的应用页面,相信用laravel+vue的大多是单页面应用)。修改为

<!DOCTYPE html>
<html>
<head>
	<title>Blog</title>
	<meta name="csrf-token" content="{{ csrf_token() }}">
	<link href="{{ asset('css/app.css') }}" rel="stylesheet">
	
	<link rel="stylesheet" href="https://unpkg.com/element-ui@2.4.6/lib/theme-chalk/index.css">{{-- 新加的 --}}
	
</head>
<body>
	<div id="app">
	  <router-view></router-view>
	</div>
	
	<script src="https://cdn.bootcss.com/vue/2.5.7/vue.min.js"></script>{{-- 新加的 --}}
	<script src="https://unpkg.com/element-ui@2.4.6/lib/index.js"></script>{{-- 新加的 --}}
	<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.js"></script>{{-- 新加的 --}}
	
	<script src="{{ asset('js/app.js') }}"></script>{{-- 一定放在app.js前面 --}}
</body>
</html>

这是我的index,大家在修改时一定看清自己的版本,这个搞错了也会出问题。
这样已经完成了cdn引入。

2.路由懒加载


喜欢自己倒腾的同学可以看下官方文档https://router.vuejs.org/zh/guide/advanced/lazy-loading.html。
首先,我们要安装一个插件,因为blade不识别webpack中的import(),导致无法分割。
npm install --save-dev babel-plugin-syntax-dynamic-import
cnpm也可以下载,下载完后我们在项目根创建一个.babelrc文件,里面写

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

然后,把我们路由改成这样子

component: resolve=>require(["./components/index.vue"], resolve)

也就是把原来的

import 你的组件 from "./components/你的组件.vue"
component: 你的组件

改为
component: resolve=>require(["./components/你的组件.vue"], resolve)

这样就会把app.js压缩的非常小。

遇到坑的同学可以在下面分享,我们一起解决。
最后:如有错误,敬请指正,感激不尽

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VueLaravel是两个独立的技术,但它们可以很好地结合在一起,共同用于构建现代化的Web应用程序。 Vue是一个用于构建用户界面的渐进式JavaScript框架。它可以与任何后端技术结合使用,包括LaravelVue具有简洁明了的语法和丰富的功能,使得开发人员可以轻松构建交互性强、响应迅速的Web应用程序。 Laravel是一个流行的PHP Web应用程序框架,它提供了一种优雅且表达力强的方式来构建Web应用程序。Laravel具有丰富的功能集,包括数据库查询构建器、路由、缓存、认证等。它还提供了许多开箱即用的功能,如用户身份验证、会话管理和表验证。 在使用VueLaravel构建应用程序时,你可以利用Vue的组件化架构来构建前端界面,同时使用Laravel处理后端逻辑和数据存储。你可以在Laravel中使用Vue组件,将它们嵌入到Blade模板中,并使用Laravel的路由系统来管理前端页面的导航。 为了结合VueLaravel,你需要按照以下步骤进行操作: 1. 在Laravel项目中安装Vue.js: - 在终端中导航到Laravel项目的根目录。 - 运行命令`npm install`,以安装项目所需的Node.js依赖项。 2. 创建Vue组件: - 在Laravel项目的资源目录中创建一个新的Vue组件,例如`resources/assets/js/components`。 - 编写Vue组件的代码,定义其模板、脚本和样式。 - 在Vue组件中导出组件的定义,以便在其他地方使用。 3. 配置Vue路由: - 在Laravel项目的资源目录中创建一个路由管理器文件,例如`resources/assets/js/route.js`。 - 在路由管理器文件中定义前端页面的路由配置,包括路径和对应的Vue组件。 - 导出路由配置,以便在其他地方使用。 4. 在Laravel项目中加载Vue和路由: - 在Laravel的入口文件(通常是`resources/assets/js/app.js`)中引入VueVue路由。 - 使用Vue的`Vue.use()`方法来安装Vue路由插件。 - 导入之前创建的路由配置文件,并在Vue实例化之前将其传递给Vue路由的构造函数。 - 实例化Vue,并将Vue路由实例作为选项之一传递给Vue实例。 5. 编译和运行应用程序: - 使用Laravel Mixwebpack的封装工具)来编译和打包前端资源。 - 运行`npm run dev`命令,以在开发模式下编译和打包前端资源。 - 运行`php artisan serve`命令,以启动Laravel开发服务器。 - 在浏览器中访问`http://localhost:8000`,即可看到VueLaravel结合的应用程序。 通过以上步骤,你就可以将VueLaravel结合使用,构建出一个功能强大、响应迅速的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值