教程 > laravel 教程 > 阅读:25

javascript 和 css 脚手架——迹忆客-ag捕鱼王app官网

简介

laravel 并不强制我们使用什么 javascript 框架或者 css 预处理器,不过也确实提供了对很多应用而言都很有用的 bootstrapreact 以及 vue 的一些基本脚手架。默认情况下,laravel 使用 npm 来安装这些前端包。

laravel 提供的 bootstrap 和 vue 脚手架代码位于 laravel/ui 依赖包中,需要通过 composer 下载安装:

$ composer require laravel/ui

laravel/ui 包安装完成后,可以使用 artisan 命令 ui 来初始化前端脚手架:

// generate basic scaffolding...
$ php artisan ui bootstrap
$ php artisan ui vue
$ php artisan ui react
// generate login / registration scaffolding...
$ php artisan ui bootstrap --auth
$ php artisan ui vue --auth
$ php artisan ui react --auth

css

laravel mix提供了干净、优雅的 api 用于编译 sassless,sass 和 less 都是在原生 css 的基础上新增了变量、混合(mixin)以及其它强大的功能特性,从而让我们在使用 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 应用 —— 这只是为选择使用 bootstrap 的开发者提供一个良好的起点。

编译 css 之前,使用 npm 安装应用的前端依赖(在此之前确保系统已经安装过 node.js):

$ npm install

使用 npm install 安装好前端依赖之后,可以使用 laravel mix 将 sass 文件编译为纯 css,npm run dev 命令会处理 webpack.mix.js 文件中的声明。通常,编译好的 css 文件会存放到 public/css 目录下:

$ npm run dev

laravel 自带的默认 webpack.mix.js 文件会编译 sass 文件 resources/sass/app.scss,这个 app.scss 文件将会导入一个包含 sass 变量的文件并加载 bootstrap,从而助力我们快速在应用中引入 bootstrap 资源。你也可以按照自己的需要自定义 app.scss 文件,甚至可以通过配置 laravel mix 使用一个完全不同的预处理器。


编写 javascript

应用所需要的所有 javascript 依赖都可以在应用根目录下的 package.json 中找到,这个文件和 composer.json 类似,只不过它指定的是 javascript 依赖而不是 php 依赖。我们可以使用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 应用。编译好的 javascript 文件通常会存放到 public/js 目录下。

注:app.js 文件会加载 resources/js/bootstrap.js 以便启动和配置 vue,axios,jquery 以及所有其它 javascript 依赖,如果你有额外的 javascript 依赖需要配置,请在这里操作。

编写 vue 组件

默认情况下,新安装的 laravel 应用将会在 resources/js/components 目录下包含一个 vue 组件 examplecomponent.vue,这个 vue 组件是一个单文件 vue 组件示例,其中定义了相关的 javascript 和 html 模板,单文件组件为构建 javascript 驱动的应用提供了便利。这个示例组件在 app.js 中注册:

vue.component(
    'example-component',
    require('./components/examplecomponent.vue').default
);

要在应用中使用这个组件,只需要将其丢到某个 html 模板中。例如,在运行完 artisan 命令 php artisan ui vue --auth 创建登录和注册视图之后,就可以将这个组件丢到 blade 模板 home.blade.php中:

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

注:记住,每次修改 vue 组件后都要运行一次 npm run dev 命令,或者,你也可以运行 npm run watch 命令进行监听,一旦组件被修改后可以自动进行重新编译。

如果我们对编写 vue 组件感兴趣,可以去阅读vue文档,从而对 vue 框架有更加全面的认识。

使用 react

如果我们更喜欢使用 react 来构建 javascript 应用,在 laravel 中从 vue 脚手架切换到 react 脚手架也很简单:

composer require laravel/ui
php artisan ui react
// generate login / registration scaffolding...
php artisan ui react --auth

这个命令将会移除 vue 脚手架代码并将其替换为 react 脚手架代码,同时包含一个示例组件。


添加预设命令

预设命令是 "macroable" 的,允许我们在运行时在uicommand类中添加额外方法,例如,下面这段代码会添加一个 nextjs 方法到 uicommand 类。通常,需要在service provider中声明预设宏:

use laravel\ui\uicommand;
uicommand::macro('nextjs', function (uicommand $command) {
    // scaffold your frontend...
});

然后,我们就可以通过 ui 命令调用新的预设了:

$ php artisan ui nextjs

查看笔记

扫码一下
查看教程更方便
网站地图