JavaScript 和 CSS 脚手架
介绍
虽然 Laravel 不强制要求使用特定的 JavaScript 或 CSS 预处理器,但它确实提供了一个基本的起点,使用 Bootstrap 和 Vue,这对许多应用程序会很有帮助。默认情况下,Laravel 使用 NPM 来安装这两个前端包。
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 文件。
移除前端脚手架
如果您想从应用程序中移除前端脚手架,可以使用 preset
Artisan 命令。此命令与 none
选项结合使用时,将从应用程序中移除 Bootstrap 和 Vue 脚手架,仅保留一个空白的 SASS 文件和一些常见的 JavaScript 实用程序库:
php artisan preset none
编写 CSS
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
默认情况下,Laravel 的 package.json
文件包含了一些包,如 vue
和 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
目录中。
app.js
文件将加载 resources/js/bootstrap.js
文件,该文件引导和配置 Vue、Axios、jQuery 以及所有其他 JavaScript 依赖项。如果您有其他 JavaScript 依赖项需要配置,可以在此文件中进行。
编写 Vue 组件
默认情况下,新的 Laravel 应用程序包含一个位于 resources/js/components
目录中的 ExampleComponent.vue
Vue 组件。ExampleComponent.vue
文件是一个 单文件 Vue 组件 的示例,它在同一个文件中定义了 JavaScript 和 HTML 模板。单文件组件提供了一种非常方便的方法来构建 JavaScript 驱动的应用程序。示例组件在您的 app.js
文件中注册:
Vue.component(
'example-component',
require('./components/ExampleComponent.vue').default
);
要在应用程序中使用该组件,您可以将其放入一个 HTML 模板中。例如,在运行 make:auth
Artisan 命令以为应用程序的身份验证和注册屏幕生成脚手架后,您可以将组件放入 home.blade.php
Blade 模板中:
@extends('layouts.app')
@section('content')
<example-component></example-component>
@endsection
请记住,每次更改 Vue 组件时,您都应该运行 npm run dev
命令。或者,您可以运行 npm run watch
命令来监视并在每次修改组件时自动重新编译它们。
如果您有兴趣了解更多关于编写 Vue 组件的信息,您应该阅读 Vue 文档,它提供了对整个 Vue 框架的全面、易于阅读的概述。
使用 React
如果您更喜欢使用 React 来构建 JavaScript 应用程序,Laravel 使得用 React 脚手架替换 Vue 脚手架变得非常简单。在任何新的 Laravel 应用程序中,您可以使用 preset
命令和 react
选项:
php artisan preset react
此单一命令将移除 Vue 脚手架并用 React 脚手架替换,包括一个示例组件。