# JavaScript 與 CSS
- [簡介](#introduction)
- [編寫 CSS](#writing-css)
- [編寫 JavaScript](#writing-javascript)
- [編寫 Vue 組件](#writing-vue-components)
<a name="introduction"></a>
## 簡介
Laravel 并沒有規定你使用哪個 JavaScript 或 CSS 預處理器,不過默認提供了對大多數應用都很適用的 [Bootstrap](http://getbootstrap.com) 和 [Vue](https://vuejs.org) 來作為起點。 Laravel 默認使用 [NPM](https://npmjs.org) 安裝這些前端的依賴。
#### CSS
[Laravel Elixir](/docs/{{version}}/elixir) 提供了一個簡潔、富有表現力的 API 來編譯 SASS 或 Less,這些 CSS 預處理語言擴充了 CSS 語言,增加了諸如變量、混合(mixins)及其他一些強大的功能讓編寫 CSS 代碼變得更加有趣。
盡管我們會在這里簡要的討論 CSS 編譯的內容,但是,你應該訪問 [Laravel Elixir 文檔](/docs/{{version}}/elixir) 獲取更多關于編譯 SASS 或 Less 的信息。
#### JavaScript
Laravel 并不需要你使用特定的 JavsScript 框架或者庫來構建應用程序。事實上,你也可以完全不用 JavaScript。不過,Laravel 自帶了用 [Vue](https://vuejs.org) 實現的基本腳手架代碼來幫你更輕松的開始現代化 JavaScript 編碼。Vue 提供了強大的組件化 API 用來構建健壯的 JavaScript 應用程序。
<a name="writing-css"></a>
## 編寫 CSS
在 Laravel 的根目錄中的 `Package.json` 文件引入了 `bootstrap-sass` 依賴包可以幫助你使用 Bootstrap 制作應用程序的前端原型。不過,你可以根據自己應用程序的需要在 `package.json` 靈活的添加或者移除依賴包。使用 Bootstrap 框架來構建你的 Laravel 應用程序并不是必選項,它只是給那些想用它的人提供一個很好的起點。
編譯 CSS 代碼之前,需要你先使用 NPM 來安裝前端的依賴:
npm install
使用 `npm install` 成功安裝依賴之后,你就可以使用 [Gulp](http://gulpjs.com/) 來將 SASS 文件編譯為純 CSS。`gulp` 命令會執行處理 `gulpfile.js` 文件中的指令。通常情況下,編譯好的 CSS 代碼會被放置在 `public/css` 目錄:
gulp
默認情況下,`gulpfile.js` 會編譯 `resources/assets/sass/app.scss` SASS 文件。`app.scss` 文件導入了一個包含 SASS 變量的文件,加載了 Bootstrap 框架,這對大多數程序來說是一個很好的出發點。你也可以根據自己的需要去定制 `app.scss` 文件的內容,甚至使用完全不同的預處理器,詳細配置見 [配置 Laravel Elixir](/docs/{{version}}/elixir)。
<a name="writing-javascript"></a>
## 編寫 JavaScript
在項目根目錄中的 `package.json` 可以找到應用程序的所有 JavaScript 依賴。它和 `composer.json` 文件類似,不同的是它指定的是 JavaScript 的依賴而不是 PHP 的依賴。使用 [Node 包管理器 (NPM)](https://npmjs.org) 來安裝這些依賴包:
npm install
Laravel `package.json` 文件默認會包含一些依賴包來幫助你開始建立 JavaScript 應用程序,例如 `vue` 和 `vue-resource` 。你可以根據自己程序的需要在 `package.json` 中添加或者移除依賴。
成功安裝依賴之后,你就可以使用 `gulp` 命令來 [編譯資源文件](/docs/{{version}}/elixir) 。Gulp 是一個 JavaScript 的命令行構建系統。當你運行 `Gulp` 命令時,Gulp 會執行 `gulpfile.js` 文件中的指令:
gulp
默認情況下,`gulpfile.js` 會編譯 SASS 文件和 `resources/assets/js/app.js` 文件。你可以在 `app.js` 文件中注冊你的 Vue 組件,或者如果你更喜歡其他的框架,也可以在這里進行配置。編譯好的 JavaScript 文件通常會放置在 `public/js` 目錄。
> {tip} `app.js` 會加載 `resources/assets/js/bootstrap.js` 文件來啟動、 配置 Vue,Vue Resource,jQuery,以及其他的 JavaScript 依賴。如果你有額外的 JavaScript 依賴需要去配置,你也可以在這個文件中完成。
<a name="writing-vue-components"></a>
### 編寫 Vue 組件
全新安裝的 Laravel 程序默認會在 `resources/assets/js/components` 中包含一個 `Example.vue` 的 Vue 組件。`Example.vue` 文件是一個 [單文件 Vue 組件](https://vuejs.org/guide/application.html#Single-File-Components) 的示例,單文件 Vue 組件允許我們在同一個文件中編寫 JavaScript 和 HTML 模板,它提供了一種非常方便的方式去構建 JavaScript 驅動的應用程序。這個示例組件注冊在 `app.js` 文件。
Vue.component('example', require('./components/Example.vue'));
在應用程序中使用示例組件,你只需要簡單的將其放到你的 HTML 模板之中。例如,在你運行 `make:auth` Artisan 命令去生成應用的用戶認證和注冊的腳手架頁面后,你可以把組件放到 `homde.blade.php` Blade 模板:
@extends('layouts.app')
@section('content')
<example></example>
@endsection
> {tip} 謹記,你需要在每次修改 Vue 組件后都需要運行 `gulp` 命令。或者,你可以使用 `gulp watch` 命令來監控并在每次文件被修改時自動重新編譯組件。
當然,如果你對學習更多編寫 Vue 組件的內容感興趣,你可以讀一下 [Vue 官方引導文檔](http://vuejs.org/guide/),它提供了一個透徹、易懂的文檔讓你一覽 Vue 框架的概貌。
## 譯者署名
| 用戶名 | 頭像 | 職能 | 簽名 |
|---|---|---|---|
| [@JobsLong](https://phphub.org/users/56) | <img class="avatar-66 rm-style" src="https://dn-phphub.qbox.me/uploads/avatars/56_1427370654.jpeg?imageView2/1/w/100/h/100"> | 翻譯 | 我的個人主頁:[http://jobslong.com](http://jobslong.com) |
- 說明
- 翻譯說明
- 發行說明
- 升級說明
- 貢獻導引
- 入門指南
- 安裝
- 配置信息
- 文件夾結構
- 錯誤與日志
- 開發環境
- HomeStead
- Valet
- 核心概念
- 服務容器
- 服務提供者
- 門面(facades)
- contracts
- HTTP層
- 路由
- 中間件
- CSRF保護
- 控制器
- 請求
- 響應
- Session
- 表單驗證
- 視圖與模板
- 視圖
- Blade模板
- 本地化
- Javascript與CSS
- 入門指南
- laravel-elixir
- 安全
- 用戶認證
- 用戶授權
- 重置密碼
- API授權
- 加密解密
- 哈希
- 綜合話題
- 廣播系統
- 緩存系統
- 事件系統
- 文件存儲
- 郵件發送
- 消息通知
- 隊列
- 數據庫
- 快速入門
- 查詢構造器
- 分頁
- 數據庫遷移
- 數據填充
- redis
- Eloquent ORM
- 快速入門
- 模型關聯
- Eloquent集合
- 修改器
- 序列化
- Artisan控制臺
- Artisan 命令行
- 任務調度
- 測試
- 快速入門
- 應用程序測試
- 數據庫測試
- 模擬器
- 官方擴展包
- Cashier交易包
- Envoy 部署工具
- Passport OAuth 認證
- Scout 全文搜索
- Socialite 社交化登錄
- 附錄
- 集合
- 輔助函數
- 擴展包開發
- 交流說明