Laravel与前端的最佳实践技巧Laravel-Mix

Laravel Mix

laravel在与前端相结合这块做的很不错,提供了Laravel Mix

Laravel Mix 提供了简洁且可读性高的 API ,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤。可以通过简单链式调用来定义资源的编译。

我们可以自己使用sass,npm,es6语法,压缩,生成随机文件名,通过webpack打包生成 注入到我们的html中

简单的一行代码,Laravel Mix 可以执行很多重要的操作。

  • ES2017 + 模块编辑
  • 创建并且编译 .vue 组件 (通过 vue-loader)
  • 模块热替换
  • Tree-shaking 打包技术, webpack 2 里新增的 (移除未使用的库代码)
  • 提取和拆分 vendor 库 (通过 mix.extract()), 让长期缓存变的容易
  • 自动版本化 (文件哈希),通过 mix.version()

可查看本人项目源码:https://github.com/WXiangQian/laravel-api

具体使用例子

webpack.mix.js中

mix.js('resources/assets/js/app.js', 'public/js')
    .js('resources/assets/js/geetest.js','public/js')
    .sass('resources/assets/sass/app.scss', 'public/css')
    .sass('resources/assets/sass/index.scss', 'public/css')
    .sass('resources/assets/sass/post.scss', 'public/css')
    .sass('resources/assets/sass/search.scss', 'public/css')
    .version();

blade.php 中就可以使用

Laravel 5.5 preset命令

Laravel 5.5发布,新增加了一个preset的命令。

php artisan preset

这行代码主要就是方便我们切换前端框架,比如react,vue,bootstarp时。如果想使用vue就可以

php artisan preset vue

vue在laravel中具体实例

下面做个返回头部的vue的组件

1.我们在resources\js\components定义GoTop.vue





2.在resources\js\app.js注册


Vue.component('go-top', require('./components/GoTop.vue'));


3. 在blade.php 模版中使用 


```html

注意: vue做全局组件不易太多,因为打包app.js会被所有页面都会加载到。

vue 彩蛋

如果一个组件里引入另组件可能你的控制台就会报一个错误,[Vue warn]: Failed to mount component: template or render function not defined. (found in root instance)

原因的话,具体参考这篇文章

那如果我们在laravel中遇到这种问题该怎么解决呢?,就是把所有组件都在app.js注册。

你可能感兴趣的:(php,laravel)