JavaScript & CSS 脚手架
介绍
虽然 Laravel 不规定你使用哪种 JavaScript 或 CSS 预处理器,但它确实提供了一个基本的起点,使用 Bootstrap、React 和 / 或 Vue,这对许多应用程序会很有帮助。默认情况下,Laravel 使用 NPM 来安装这些前端包。
Laravel 提供的 Bootstrap 和 Vue 脚手架位于 laravel/ui
Composer 包中,可以使用 Composer 安装:
composer require laravel/ui:^1.0 --dev
安装 laravel/ui
包后,可以使用 ui
Artisan 命令安装前端脚手架:
// 生成基本脚手架...
php artisan ui bootstrap
php artisan ui vue
php artisan ui react
// 生成登录 / 注册脚手架...
php artisan ui bootstrap --auth
php artisan ui vue --auth
php artisan ui react --auth
CSS
Laravel Mix 提供了一个简洁、富有表现力的 API,用于编译 SASS 或 Less,这些是普通 CSS 的扩展,增加了变量、混入和其他强大的功能,使得使用 CSS 更加愉快。在本文档中,我们将简要讨论 CSS 编译的一般情况;不过,你应该查阅完整的 Laravel Mix 文档 以获取有关编译 SASS 或 Less 的更多信息。
JavaScript
Laravel 不要求你使用特定的 JavaScript 框架或库来构建应用程序。事实上,你甚至不必使用 JavaScript。然而,Laravel 确实包含了一些基本的脚手架,使得使用 Vue 库编写现代 JavaScript 更加容易。Vue 提供了一个富有表现力的 API,用于使用组件构建强大的 JavaScript 应用程序。与 CSS 一样,我们可以使用 Laravel Mix 轻松地将 JavaScript 组件编译成一个单一的、浏览器就绪的 JavaScript 文件。
编写 CSS
安装 laravel/ui
Composer 包并生成前端脚手架后,Laravel 的 package.json
文件将包含 bootstrap
包,以帮助你开始使用 Bootstrap 原型化应用程序的前端。不过,请随意根据自己的应用程序需要添加或删除 package.json
文件中的包。你不必使用 Bootstrap 框架来构建 Laravel 应用程序 - 它是为那些选择使用它的人提供的一个良好起点。
在编译 CSS 之前,使用 Node 包管理器 (NPM) 安装项目的前端依赖项:
npm install
使用 npm install
安装依赖项后,可以使用 Laravel Mix 将 SASS 文件编译为普通 CSS。npm run dev
命令将处理 webpack.mix.js
文件中的指令。通常,编译后的 CSS 将放置在 public/css
目录中:
npm run dev
Laravel 的前端脚手架中包含的 webpack.mix.js
文件将编译 resources/sass/app.scss
SASS 文件。这个 app.scss
文件导入了一个 SASS 变量文件并加载了 Bootstrap,为大多数应用程序提供了一个良好的起点。请随意根据需要自定义 app.scss
文件,甚至可以通过配置 Laravel Mix 使用完全不同的预处理器。
编写 JavaScript
应用程序所需的所有 JavaScript 依赖项都可以在项目根目录的 package.json
文件中找到。这个文件类似于 composer.json
文件,只是它指定的是 JavaScript 依赖项而不是 PHP 依赖项。你可以使用 Node 包管理器 (NPM) 安装这些依赖项:
npm install
NOTE
默认情况下,Laravel 的 package.json
文件包含了一些包,如 lodash
和 axios
,以帮助你开始构建 JavaScript 应用程序。请随意根据自己的应用程序需要添加或删除 package.json
文件中的包。
安装包后,可以使用 npm run dev
命令编译资产。Webpack 是一个现代 JavaScript 应用程序的模块打包器。当你运行 npm run dev
命令时,Webpack 将执行 webpack.mix.js
文件中的指令:
npm run dev
默认情况下,Laravel 的 webpack.mix.js
文件会编译你的 SASS 和 resources/js/app.js
文件。在 app.js
文件中,你可以注册 Vue 组件,或者如果你更喜欢其他框架,可以配置自己的 JavaScript 应用程序。编译后的 JavaScript 通常会放置在 public/js
目录中。
NOTE
app.js
文件将加载 resources/js/bootstrap.js
文件,该文件引导和配置 Vue、Axios、jQuery 以及所有其他 JavaScript 依赖项。如果你有其他 JavaScript 依赖项需要配置,可以在此文件中进行。
编写 Vue 组件
使用 laravel/ui
包为前端生成脚手架时,会在 resources/js/components
目录中放置一个 ExampleComponent.vue
Vue 组件。ExampleComponent.vue
文件是一个 单文件 Vue 组件 的示例,它在同一个文件中定义了 JavaScript 和 HTML 模板。单文件组件提供了一种非常方便的方法来构建 JavaScript 驱动的应用程序。示例组件在你的 app.js
文件中注册:
Vue.component(
'example-component',
require('./components/ExampleComponent.vue').default
);
要在应用程序中使用该组件,可以将其放入一个 HTML 模板中。例如,在运行 php artisan ui vue --auth
Artisan 命令为应用程序的身份验证和注册屏幕生成脚手架后,可以将组件放入 home.blade.php
Blade 模板中:
@extends('layouts.app')
@section('content')
<example-component></example-component>
@endsection
NOTE
请记住,每次更改 Vue 组件时都应运行 npm run dev
命令。或者,你可以运行 npm run watch
命令来监视并在每次修改组件时自动重新编译。
如果你对编写 Vue 组件感兴趣,应该阅读 Vue 文档,它提供了对整个 Vue 框架的全面、易于阅读的概述。
使用 React
如果你更喜欢使用 React 构建 JavaScript 应用程序,Laravel 可以轻松地将 Vue 脚手架替换为 React 脚手架:
composer require laravel/ui:^1.0 --dev
php artisan ui react
// 生成登录 / 注册脚手架...
php artisan ui react --auth
添加预设
预设是“可宏化的”,这允许你在运行时向 UiCommand
类添加其他方法。例如,以下代码向 UiCommand
类添加了一个 nextjs
方法。通常,你应该在服务提供者中声明预设宏:
use Laravel\Ui\UiCommand;
UiCommand::macro('nextjs', function (UiCommand $command) {
// 为前端生成脚手架...
});
然后,你可以通过 ui
命令调用新的预设:
php artisan ui nextjs