前端指南

前端指南


JavaScript & CSS 脚手架

简介

虽然 Laravel 并不强制你使用哪个 JavaScript 或 CSS 预处理器,不过它提供了使用适用于许多应用场景的 Bootstrap 和 Vue 的起点。默认情况下, Laravel 使用 NPM 安装这两个前端包。

CSS

Laravel Mix 提供了干净的、富有表现力的 API,用于编译 SASS 和 Less,它们能够拓展原始的 CSS,拥有向 CSS 中添加变量、mixins 和其它使 CSS 更好用的强大特性。在这篇文档中,我们将简要说明 CSS 的大体编译过程;不过,你最好翻阅完整的 Laravel Mix 文档 以获取编译 SASS 和 Less 的详细信息。

JavaScript

Laravel 不要求你使用特定的 JavaScript 框架或库来构建应用。事实上,你完全可以不使用 JavaScript。但是 Laravel 包括了几个基本的脚手架,它们可以使创建基于 Vue 库的现代 JavaScript 变得更容易。Vue 提供了一个极富表现力的 API,使用组件来构建健壮的 JavaScript。像 CSS 一样,可以使用 Laravel Mix 轻松将 JavaScript 组件编译到单个的、基于浏览器的 JavaScript 文件中。

删除前端脚手架

想要从应用中删除前端脚手架,可以使用presetArtisan 命令。执行带有none选项的preset命令,将从应用中删除 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.scssSASS 文件。app.scss导入 SASS 变量文件并加载 Bootstrap,它为多数应用提供了一个易用的起点。 可以自由的定制app.scss文件,以通过 配置 Laravel Mix 来使用你所希望的甚至完全不同的预处理器。

编写 JavaScript

应用所依赖的所有 JavaScript 包必须能在项目根目录的package.json文件中找到。这个文件与composer.json文件类似,composer.json文件解决 PHP 的依赖关系,package.json文件则解决 JavaScript 的依赖关系。使用 Node 包管理器 (NPM) 安装这些依赖包:

npm install

{tip} 默认情况下, Laravel 的package.json文件包含vueaxios等几个包,以帮助你开始构建 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文件中注册组件,如果你喜欢利用其它框架配置自己的 JavaScript 应用。编译过的 JavaScript 通常放置在public/js目录。

{tip}app.js文件将载入resources/js/bootstrap.js文件,它负责配置和启动 Vue、 Axios、 jQuery 和其它 JavaScript 依赖。如果你想配置额外的 JavaScript 依赖,可以在这个文件内完成。

编写 Vue 组件

默认情况下,纯净的 Laravel 应用包含ExampleComponent.vueVue 组件,存放在resources/js/components目录中。ExampleComponent.vue文件是一个 单文件 Vue 组件 示例,在同一个文件中定义了组件的 JavaScript 和 HTML 。单文件组件提供了构建 JavaScript 驱动应用的简便方法。这个示例组件是在app.js文件中注册的:

Vue.component( 'example-component', require('./components/ExampleComponent.vue') );

要在应用中使用该组件,需要将其放入 HTML 模板。比如,运行make:authArtisan 命令搭建应用的用户身份验证和注册页面的骨架,只要把这个组件放到home.blade.phpBlade 模板中:

@extends('layouts.app') @section('content')  @endsection

{tip} 切记,每次修改了 Vue 组件,都要运行npm run dev命令。也可以运行npm run watch命令监视和自动重编译发生变化的组件。

如果有进一步学习编写 Vue 组件的兴趣,可以阅读Vue 文档,它提供了整个 Vue 框架全面、易读的概述。

使用 React

如果更喜欢使用 React 构建 JavaScript 应用, Laravel 使得在 Vue 脚手架和 React 脚手架间切换变得非常容易。在纯净的 Laravel 应用中,可以使用带有react参数的preset命令来达到此目的:

php artisan preset react

此命令将删除 Vue 脚手架,并使用 React 脚手架代替它,同样包含一个组件示例。

本文章首发在 LearnKu.com网站上。