搜尋
首頁web前端js教程灰燼和Ember CLI入門

Getting started with Ember and Ember CLI

核心要點

  • Ember CLI是一個為Ember構建的命令行工具,它結合了生成器、壓縮器、CSS預處理器編譯器、自動重載和ES6模塊加載器等多種功能。它可以作為Grunt和Gulp等工具的替代方案,用於設置新的Ember項目。
  • Ember遵循約定優於配置的理念,這意味著它具有許多默認設置,可以簡化開發過程。關鍵元素包括路由、控制器、模板、組件和Ember-Data。
  • 本教程提供了一個分步指南,介紹如何使用Ember CLI構建簡單的聯繫人管理器應用程序。它涵蓋了創建新的Ember項目、設置固定數據、生成用戶模型和路由、創建用戶模板以及添加顯示和編輯用戶信息的功能。
  • Ember是一個功能強大的JavaScript框架,適用於構建大型Web應用程序。借助Ember CLI,它提供了一個標準化的開發環境,可以更輕鬆地管理依賴項、自動化任務和執行最佳實踐。

Ember多年來經歷了許多變化。其中最大的一次變化是引入了Ember CLI,這是一個為Ember構建的命令行工具。它結合了生成器、壓縮器、CSS預處理器編譯器、自動重載和ES6模塊加載器等多種功能。此命令行工具將幫助您減少在設置Grunt和Gulp等工具上花費的時間。可以說,對於任何全新的Ember項目,它都是這些工具的良好替代方案。在本文中,您將學習如何使用Ember CLI構建簡單的聯繫人管理器應用程序。本教程與我在SitePoint上發布的其他關於Ember的文章略有不同,因為它們沒有附帶Ember CLI。但是,大多數這些概念仍然適用,因此我建議您查看它們並繼續學習。本文的完整代碼可在GitHub上找到。

如何安裝Ember CLI

要安裝Ember CLI,您需要先安裝幾個依賴項。第一個是Node.js。您至少需要0.12.x版本。接下來,需要安裝Bower,可以通過運行以下命令來完成:

npm install -g bower

然後,要安裝Ember CLI,請運行以下命令:

npm install -g ember-cli

如何創建一個新的Ember項目

在開始進行精彩的操作之前,您需要打開終端並按順序執行以下命令,以便創建一個名為contactmanager的新項目文件夾:

ember new contactmanager

第二步,進入目錄,然後使用以下命令安裝所有npm和Bower依賴項:

cd contactmanager
npm install
bower install

此時,通過執行以下命令啟動內置的Ember服務器:

ember serve

您現在可以在URL localhost:4200訪問您的新應用程序。這是在本地計算機上運行的Ember應用程序的默認端口,但您可以根據需要更改它。如果您按照所有指示的步驟操作,現在應該在瀏覽器中看到一個標題,上面寫著“歡迎使用Ember”。

Ember約定和結構

在深入構建應用程序之前,讓我們回顧一下一些Ember約定。

路由器和路由

路由是Ember應用程序的入口點。路由在app/router.js文件中使用Router定義。它們允許您訪問應用程序的不同部分。例如,如果您決定需要在應用程序中管理用戶,則必須定義用戶路由。您可以使用以下語法執行此操作:

npm install -g bower

這將為我們創建以下URL:

  • /users/
  • /users/index/
  • /users/loading/

按照慣例,當您定義路由時,Ember期望找到其他關聯類型,例如路由、控制器和模板。我們可以決定顯式創建這些類型,或者允許Ember為我們創建它們。在許多應用程序中,您很可能必須自己創建它們,但這取決於您。請記住,區分路由器和路由至關重要。我們上面創建的URL結構是使用路由器完成的。這些僅顯示我們希望在應用程序中使用這些URL的意圖。我們還沒有創建實際的路由,而只是這些路由的URL。要創建路由,我們必須在routes文件夾中遵循此過程。如果您感到困惑,請不要擔心,因為我將在本文後面更深入地探討此主題。

控制器

控制器是一種用於存儲視圖狀態的類型,位於app/controllers文件夾中。它們與路由協同工作。在這種情況下,上面的URL對應於/user/,並且需要一個名為/users/的控制器。同樣在這裡,我們可以自由選擇是否自己定義它。控制器還定義視圖操作(如點擊、懸停等)的事件處理程序。

模板

模板是Ember的表示部分。您使用名為Handlebars的模板語言編寫它,該語言編譯成純HTML。模板位於app/templates文件夾中。

組件

組件是小的自包含的功能塊。您可以將它們視為表示和功能的組合,它們可重用且易於維護。

Ember-Data

這是一個由Ember核心團隊維護的庫,它補充了Ember核心,並充當管理數據模型的前端ORM。還有其他一些我以前沒有使用過的替代方案,並且不在本文的討論範圍之內,因為我們將使用Ember-data。

應用程序

我們將構建的聯繫人管理應用程序將包括一個用戶列表及其可用的聯繫信息。該應用程序將允許我們創建、編輯、刪除和查看用戶。為了使我們的應用程序簡潔明了,我們將使用Ember CLI附帶的固定適配器。這充當後端,除了數據不會在頁面刷新時持久化之外。首先,如果您尚未創建,請使用ember new contactmanager創建一個新的Ember項目。

生成用戶模型

移至項目文件夾並使用以下命令生成用戶模型:

npm install -g ember-cli

這將在app/models中創建一個名為user.js的文件,其內容如下:

npm install -g bower

進行必要的更改,以使導出語句如下所示:

npm install -g ember-cli

這定義了我們的用戶模型將具有的屬性。

生成用戶路由

現在,將以下幾行添加到您的router.js文件中,以便為我們提供一些可用的URL:

ember new contactmanager

我們有三個新的URL。其中一個是列出用戶,另一個是查看單個用戶,最後一個是編輯用戶信息。接下來,讓我們使用以下命令創建一個用戶路由:

cd contactmanager
npm install
bower install

此路由將用於檢索我們的用戶列表。使用以下代碼段更改其內容:

ember serve

設置固定數據並生成用戶模板

此時,讓我們向我們的應用程序添加一些臨時數據。為此,運行以下命令:

Router.map(function() {
  this.resource('users', function() {});
});

這會在app/adapters/文件夾中生成一個名為application.js的文件。默認情況下,Ember使用RestAdapter查詢模型。此適配器假設您有一個後端系統,該系統向您的Ember客戶端應用程序提供JSON數據。由於我們沒有後端,在這種情況下,我們希望改為使用固定數據。因此,我們將更新適配器代碼如下所示:

ember generate model user

並向您的用戶模型添加以下內容以創建一些固定裝置。

import DS from 'ember-data';

export default DS.Model.extend({
});

如果您導航到URL localhost:4200/users,您只會看到舊的問候消息,而不會看到我們剛剛添加的用戶固定數據。要查看用戶數據,我們需要使用以下命令為用戶創建一個模板:

export default DS.Model.extend({
  firstName: DS.attr(),
  lastName: DS.attr(),
  addressLine: DS.attr(),
  postCode: DS.attr(),
  country: DS.attr()
});

這會在app/templates/文件夾中創建一個名為users.hbs的文件。打開此文件並將其內容更新如下:

Router.map(function() {
  this.resource('users', function() {
    this.route('show',{path: '/:user_id'});
    this.route('edit',{path: '/:user_id/edit'});
  });
});

您現在應該看到一個用戶列表,每個用戶旁邊都有一個編輯文本。因為我們固定數據中只有一個用戶,所以我們只會看到一個用戶。您可以根據需要向用戶固定裝置中添加更多用戶對象。只需確保每個對像都有一個唯一的ID。

顯示單個用戶

既然我們已經列出了我們的用戶,讓我們看看顯示用戶完整信息的方法。首先。通過將每個用戶名旁邊的“編輯”文本用鏈接括起來來更改users模板中的代碼。然後,將“編輯”更改為:

ember generate route users

接下來,讓我們使用以下命令生成一個用戶控制器:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function(){
    return this.store.find('user');
  }
});

在(用戶控制器)內部,將內容更改為如下所示:

ember generate adapter application

完成後,使用以下命令生成一個用於編輯用戶的模板:

import DS from 'ember-data';

export default DS.FixtureAdapter.extend({
});

目前,創建的模板(app/templates/users/show.hbs)為空。打開它並添加以下代碼:

User.reopenClass({
   FIXTURES: [{
      id: 1,
      firstName: 'James',
      lastName: 'Rice',
      addressLine: '66 Belvue Road',
      postCode: 'M235PS',
      country: 'United Kingdom'
   }]
});

這樣做,您應該能夠看到您單擊的每個用戶的完整信息。

編輯單個用戶

如果您想編輯單個用戶,則必須遵循一些簡單的步驟。首先,通過將每個用戶名旁邊的“編輯”文本用鏈接括起來來鏈接到用戶編輯路由。然後,將“編輯”更改為:

npm install -g bower

接下來,讓我們使用以下命令生成一個用戶控制器:

npm install -g ember-cli

在(用戶控制器)內部,將內容更改為如下所示:

ember new contactmanager

完成後,使用以下命令生成一個用於編輯用戶的模板:

cd contactmanager
npm install
bower install

在新的模板app/templates/users/edit中,粘貼以下代碼:

ember serve

此代碼在提交表單時調用我們控制器上的saveUser()函數。該函數傳遞正在編輯的用戶並保存修改後的信息。有了此更改,當您單擊用戶的編輯鏈接時,您可以編輯其詳細信息。當您單擊保存按鈕時,您可以保存它們,之後您將被重定向回用戶列表。萬歲!我們現在有一個簡單的聯繫人列表管理器。您可以通過將其連接到真實後端來將其轉換為完整應用程序,以便在頁面刷新時持久化數據。我還鼓勵您向應用程序添加刪除功能,以便您可以隨時刪除不需要的用戶。

結論

Emberhttps://www.php.cn/link/0e0f9e664029e8912996d65c1cf09761是一個用於構建大型Web應用程序的框架。它具有約定優於配置的理念,這意味著它基於幾個常見的決定,並且具有許多默認(約定),這使得您的開發過程更容易。這樣,您在開發過程中就不必做出許多瑣碎的決定。我希望您喜歡閱讀本教程並學習了有關如何在您的項目中使用如此強大而簡單的JavaScript框架的新知識。請在下面的評論中告訴我們您的想法。您可以在GitHub上找到應用程序的代碼。

關於Ember入門和Ember CLI的常見問題

Ember和Ember CLI有什麼區別?

Ember是一個用於構建Web應用程序的JavaScript框架,而Ember CLI是一個命令行工具,可幫助您創建、開發和構建Ember應用程序。 Ember CLI提供了一個標準化的開發環境,使管理依賴項、自動化任務和執行最佳實踐變得更容易。

如何安裝Ember CLI?

要安裝Ember CLI,您需要在系統上安裝Node.js和npm。安裝這些先決條件後,您可以使用終端中的以下命令安裝Ember CLI:npm install -g ember-cli

我收到一條錯誤消息,提示“您必須位於Ember CLI項目內部才能使用serve命令”。這是什麼意思?

當您嘗試在Ember CLI項目目錄之外運行ember serve命令時,會出現此錯誤。要解決此問題,請在運行ember serve之前,使用cd命令導航到項目的根目錄。

如何使用Ember CLI創建一個新的Ember應用程序?

您可以使用ember new命令後跟應用程序的名稱來創建一個新的Ember應用程序。例如,ember new my-app將創建一個名為“my-app”的新Ember應用程序。

我應該了解哪些基本的Ember CLI命令?

您應該了解的一些基本的Ember CLI命令包括ember new(創建新應用程序)、ember serve(啟動開發服務器)、ember generate(生成新文件)和ember build(構建您的應用程序以進行部署)。

如何使用Ember CLI構建我的應用程序以進行生產?

您可以使用ember build命令並將--environment選項設置為“production”來構建您的應用程序以進行生產。該命令如下所示:ember build --environment production

如何使用Ember CLI在我的Ember應用程序中生成新文件?

您可以使用ember generate命令後跟文件類型及其名稱來在Ember應用程序中生成新文件。例如,ember generate route about將生成一個名為“about”的新路由。

如何使用Ember CLI啟動開發服務器?

您可以使用ember serve命令啟動開發服務器。這將啟動服務器,並使您的應用程序可在http://localhost:4200訪問。

如何更新Ember CLI?

您可以先使用命令npm uninstall -g ember-cli卸載舊版本,然後使用命令npm install -g ember-cli安裝新版本來更新Ember CLI。

.ember-cli文件的用途是什麼?

.ember-cli文件是Ember CLI的配置文件。它允許您自定義Ember CLI項目的行為。例如,您可以指定開發服務器的默認端口,啟用或禁用某些功能等等。

以上是灰燼和Ember CLI入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python vs. JavaScript:比較用例和應用程序Python vs. JavaScript:比較用例和應用程序Apr 21, 2025 am 12:01 AM

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器