摘要:由于系統變得越來越復雜,人們提出了稱為預處理器和后處理器的工具來管理復雜性。后處理器在由預處理器手寫或編譯后對應用更改。我之前建議的文章,,也涵蓋了預處理器相關的知識。
譯者:前端小智
原文:medium.freecodecamp.org/from-zero-t… medium.freecodecamp.org/from-zero-t…
我記得我剛開始學習前端開發的時候。我看到了很多文章及資料,被學習的資料壓得喘不過氣來,甚至不知道從哪里開始。
本指南列出前端學習路線,并提供了平時收藏的一些有效的資源。
為了使這本指南易于理解,我把它分成了兩部分。第一部分介紹了如何使用 HTML 和 CSS開發接口。第2部分將介紹 Javascript、框架和設計模式。
想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你!
HTML 和 CSS 基礎在前端開發中,一切都從 HTM 和 CSS 開始。HTML 和 CSS 控制你在 Web 頁面上看到的內容。HTML 表示內容,而 CSS 處理樣式和布局。
首先,閱讀 Mozilla Developer Network(MDN)的 HTML 和 CSS 教程。MDN 逐章解釋了 HTML和 CSS 重要概念。此外,每個章節只有一頁長,交互演示鏈接到 CodePen 和 JSFiddle。
在完成這些教程之后,看看 CodeAcademy 的 Make a Website 課程。本教程只需要幾個小時就可以完成,對于使用 HTML 和 CSS 構建網站是一個很好的入門教程。如果wq 想了解更多, Building web forms 是 CodeAcademy 提供的另一篇教程,該教程將指導你構建和樣式化 web 表單。
要練習 CSS,可以試試 CSS Diner。這是一個有趣的 CSS 挑戰游戲。HTM L和CSS 的另一個重要方面是布局。LearnLayout 是一個交互式教程,向你展示如何使用 HTML 和 CSS 創建布局。
另外,了解如何使用 CSS Tricks 的 Google 字體 的 API 基礎知識。 排版是界面的基本構建塊。 如果你有時間,我強烈建議你閱讀這本免費的在線書籍,Donny Truong 的 Professional Web Typography 它教你作為前端開發人員需要了解的關于排版的一切。
通過這些資源,不要太擔心記憶的問題。相反,重點是理解 HTML 和 CSS 如何協同工作。
練習 HTML 和 CSS 基礎現在你已經對 HTML 和 CSS 有了基本的了解,讓我們來找點樂趣。在本節中,有兩個實踐旨在為你提供構建網站和界面的實踐。我用“實踐”這個詞是因為在實踐中,你從失敗中學到的東西和你從成功中學到的一樣多。
在我們的第一個實踐中,我們將使用 CodePen。CodePen 是一個前端平臺,你可以在這里編寫 HTML 和 CSS 代碼,而不必在本地存儲文件。它還提供了實時預覽,可以在保存代碼時立即更新。
通過使用 CodePen,你可以一石二鳥。一方面,你要練習 HTML 和 CSS。另一方面,你創建一個基本的進度組合。我們還將使用 Dribbble,這是一個充滿設計靈感的網站。
在 Dribbble 找到一個簡單到可以在幾個小時內編寫代碼的設計。我選擇了一些設計讓你開始:1、2、3、4 和 5。我選擇了手機為先的網頁設計,因為它們比桌面網頁設計要簡單。不過,也可以自由選擇桌面設計。
在你決定了一個設計之后,繼續嘗試用 CodePen 編寫它。如果遇到困難,請記住StackOverflow 是你的朋友。另一個有用的實踐是訪問像 Medium、AirBnB和 Dropbox 這樣的網站,使用 inspector 工具查看它們是如何實現不同的布局和風格的。另外,看看 pens on CodePen。我挑選了一些好的例子:
Twitter小部件
Article News Card
Simple Flat Menu
如果你出來的與原設計不同,請不要氣餒。 繼續練習不同的設計,你會發現每次都有進步。
如果你沒有設計背景,很可能你的設計眼光不夠成熟。具有良好設計眼光的前端開發人員將能夠識別好的設計并完美地復制它們。幾周前,我寫了一篇關于如何培養你的設計眼光的文章。
希望第一個實踐讓你對編寫 HTML 和 CSS 有一定的信心。 對于實踐 2,我們將看一些網站,然后編寫一些組件。
一些網站使用 CSS框架或 混淆它們的 CSS 類名,使你很難閱讀它們的源代碼。這就是為什么我選擇了幾個設計良好的網站,易于閱讀源代碼。
AirBnB: 嘗試復制他們的頁腳
PayPa:試著復制他們的導航欄l
Invision :嘗試復制頁面底部的注冊部分
Stripe: 嘗試復制他們的支付部分
同樣,實踐2的重點不是重新創建整個頁面。選擇幾個關鍵組件,如導航欄或英雄部分進行編碼。我在網站列表旁邊提供了一個建議,但是請隨意選擇其他組件。
HTML 和 CSS 最佳實踐
到目前為止,你已經學習了 HTML 和 CSS 的基礎知識。下一步是學習最佳實踐。最佳實踐是一組提高代碼質量的非正式規則。
HTML?和?CSS?的最佳實踐之一是編寫語義標記。好的?web?語義意味著使用適當的?HTML?標簽和有意義的 CSS 類名來表示結構的意義。
例如,h1 標簽告訴我們它包裝的文本是一個重要的標題。 另一個例子是footer標簽 ,它告訴我們元素屬于頁面底部。 有關進一步,請閱讀 CSSTricks 的 正確的 HTML5 語義 和 什么是語義類名的構成要素。
CS S的下一個重要的最佳實踐是正確的命名規范。良好的命名規范,如語義標簽,傳達了意義,并有助于使我們的代碼可預測、可讀和可維護。你可以在這篇 OOCSS、ACSS、BEM、SMACSS:它們是什么");
一般來說,我建議你嘗試一些簡單的命名規范,這些規范對你來說是直觀的。隨著時間的推移,你會發現最適合你的方法。要了解像 Medium 這樣的公司是如何利用像 BEM 這樣的命名約定的,請閱讀 Medium’s CSS is actually pretty f***ing good.。在這篇文章中,你還會了解到,提出一組有效的 CSS 約定是一個迭代過程。
從頁邊距到行高,每個瀏覽器都有一些小的樣式不一致。因此,需要重置 CSS。MeyerWeb 是一個受歡迎的重置。如果你想深入了解,可以閱讀 Create Your Simple Reset.css File。
跨瀏覽器支持意味著你的代碼支持最新的瀏覽器。像 transition 這樣的 CSS 屬性需要廠商前綴才能在不同的瀏覽器中正常工作。在本文中,我可以閱讀更多關于供應商前綴的信息,即 CSS供應商前綴。最重要的是,你應該跨多個瀏覽器(包括 Chrome、Firefox 和 Safari )測試你的網站。
自20世紀90年代CSS引入以來,CSS走過了漫長的道路。由于UI系統變得越來越復雜,人們提出了稱為預處理器和后處理器的工具來管理復雜性。
CS S預處理程序是 CSS 語言擴展,它添加了一些額外的功能,比如變量、混合和繼承。兩個主要的CSS預處理程序是 Sass 和 Less。2016 年,Sass的使用范圍更加廣泛。Bootstrap是 一種流行的響應式 CSS 框架,它也正在從 Less 轉換到 Sass。而且,當大多數人談論 Sass時,他們實際上是在談論 SCSS。
CSS 后處理器在由預處理器手寫或編譯后對 CSS 應用更改。 例如,PostCSS 等一些后處理器具有自動添加瀏覽器供應商前綴的插件。
當您第一次得知有 CSS預處理器和后處理器時,你很有可能在任何地方已經使用它們。 但是,從簡單開始,僅在必要時添加變量和 mixin 等擴展。 我之前建議的文章,Medium’s CSS is actually pretty f***ing good,也涵蓋了預處理器相關的知識。
網格系統是CSS結構,它允許你水平和垂直地堆疊元素。
Bootstrap,Skeleton 和 Foundation 等網格框架提供了管理布局中行和列的樣式表。 雖然網格框架很有用,但了解網格的工作原理也很重要。 理解CSS網格系統 和 Don’t Overthink Grids 這兩篇文章是很好的概述。
網格系統的主要目的之一是為你的網站添加響應性。響應性意味著你的網站根據窗口寬度調整大小。很多時候,響應是通過使用 CSS 媒體查詢實現的,CSS 規則只適用于特定的屏幕寬度。
關于媒體查詢知識及擴展可以看看以下幾篇文章:
Intro to Media Queries
mobile-first
An Introduction to Mobile-First Media Queries
實踐 HTML 和 CSS 最佳實踐現在你已經掌握了最佳實踐,讓我們進行測試。下面兩個實踐的目標是練習編寫干凈的代碼,并觀察最佳實踐對可讀性和可維護性的長期影響。
對于實踐 3,選擇你之前做過的項目,并使用你在這過程所學到的知識來重構你的代碼。重構意味著編寫代碼,使代碼更容易閱讀,更簡單。
能夠有效地重構代碼是前端開發人員的一項重要技能。 編寫高質量代碼是一個迭代過程。 CSS體系結構:重構你的 CSS 是重構代碼的入門指南。
在重構代碼時,有幾件事需要問問自己。
*?你的取的類名是否有歧義");
*?你的 HTML 和 CSS 是語義化的嗎");
你是否在代碼中反復使用相同的十六進制顏色代碼");
你的代碼在 Safari 和 Chrome 上運行得一樣的嗎");
你是否可以用類似于 Skeleton 的網格系統替換一些布局代碼");
你經常使用 !important 標志嗎");
最后一個實驗把你學到的關于最佳實踐的知識運用起來。然而,最佳實踐的效果通常不會變得明顯,直到你將它們應用到一個更大的項目中。
在最后一個實踐中,為自己建立一個作品集網站。作為前端開發者,你的作品集網站是你最重要的數字資產之一。作品集是一個展示你作品的網站。更重要的是,它是一個持續的記錄,幫助你跟蹤你的進步和發展。所以即使你只有一兩件事要展示,也要展示出來。
首先,跟隨阿德漢姆·達納韋的文章 《設計和開發作品集網站站的簡單工作流程》
如果你的第一個作品集網站迭代并不完美,那也沒關系。作品集網站需要經歷許多迭代。還有,重要的是你要用自己的技能來建造它。
與時俱進雖然 HTML 和 CSS 不會很快過時,但是跟上前端環境的發展是很重要的。
下面是一個網站、博客和論壇的列表,這些網站、博客和論壇閱讀起來既有趣且信息豐富。
CSSTricks
Smashing Magazine
Designer News
Nettuts+
CSS Wizard
通過例子學習最后,最好的學習方法是以身作則。這里有一套樣式指南和編碼規范,將教你如何成為一個更有效的前端。
Web 樣式指南是可以在整個網站中重用的 CSS 組件和模式的集合。從這些樣式指南中需要注意的關鍵問題是,基于組件的 HTML 和 CSS 方法如何允許重用代碼來保持代碼的清爽(DRY)。
Mapbox
LonelyPlanet
SalesForce
MailChimp
編碼規范讓代碼易讀且可維護。其中一些鏈接(如 CSS Guidelines)是編寫更好的 HTML 和 CSS 的指南,而其他鏈接(如 Github internal CSS toolkit and Guidelines)是高質量代碼的例子。
CSS Guidelines
Github internal CSS toolkit and guidelines
AirBnB’s CSS Styleguide
小結希望在本文結束時,你已經熟悉 HTML 和 CSS,并掌握了一些項目。 學習前端的最佳方式是建立項目和實踐。 請記住,每個前端開發人員都必須從某個地方開始。 從今天開始比明天開始更好。
本文是兩部分系列中的第一部分。 第二篇文章介紹了如何使用 Javascript 和 Javascript庫/框架添加交互性,共勉,同進步。
JavaScript基礎知識
JavaScript 是一種跨平臺的編程語言,現在幾乎可以用于任何事情。
在學習如何將JavaScript應用到web之前,首先要了解該語言本身。首先,閱讀 Mozilla Developer Network的語言基礎速成課程。本教程將教你基本的語言結構,如變量、條件和函數。
然后,閱讀 MDN 的 JavaScript 指南中的以下部分:
Grammar and types (語法和類型)
Control flow and error handling (控制流程和錯誤處理)
Loops and iterations (循環和迭代)
Functions(函數)
不要太擔心記住特定的語法,你可以隨時查一下文檔。相反,應該專注于理解重要的概念,比如變量實例化、循環和函數。如果知識密度難度太大,也沒關,先過一篇,你把這些概念付諸實踐,當你回過頭在來看,可能會理解起來會更加清晰。
基于文檔的學習可能會過于單調,可以看看 Codecademy 的 JavaScript課程,這課程是理論與實踐相結合的,相對會有樂趣一。 此外,如果你有時間,請參閱上面列出的每個概念,閱讀 Eloquent JavaScript中的相應章節以加強你的學習。 Eloquent JavaScript 是一本很棒的免費在線書籍,每個有抱負的前端開發人員都應該閱讀。
現在你已經基本了解了 JavaScript 的語法,下一步就是將它應用到 Web上。 要了解 JavaScript如 何與網站交互,首先你必須了解 文檔對象模型(DOM)。
DOM 是 HTML 文檔的一種表示結構。它是一個樹形結構,由對應于 HTML 節點的 JavaScript 對象組成。要進一步了解DOM,請閱讀 CSSTricks 的 《什么是DOM》。它提供了對 DOM 的簡單而直接的解釋。
JavaScript 與 DOM 交互以更改和更新它。下面是一個例子,我們選擇一個 HTML 元素并更改它的內容
var container = document.getElementById(“container”); container.innerHTML = "New Content!";
別擔心,那只是一個簡單的例子。使用 JavaScript DOM 操作,你可以做更多的事情。要了解有關如何使用 JavaScript 與 DO M交互的更多信息,請閱讀 MDN 的“文檔對象模型”一節中的以下指南。
事件及DOM
Examples of web and XML development using the DOM
如何建立 DOM 樹
DOM概述
使用選擇器定位DOM元素
再次強調一下,重點是要先理解概念而不是語法,希望能夠回答以下問題:
DOM 是什么");
如何查詢元素
如何添加事件監聽?
如何更改 DOM 節點屬性?
有關常見的 JavaScript DOM 交互的列表,請查看 PlainJS 的 JavaScript 函數和助手。該網站提供了一些例子,說明如何在 HTML 元素上設置樣式和附加鍵盤事件監聽器。如果你想深入挖掘,你可以隨時閱讀 Eloquent 講的 JavaScript 中關于DOM的部分。
要調試瀏覽器中的JavaScript,我們使用瀏覽器內置的開發人員工具。 大多數瀏覽器都提供了 inspector 面板,可以讓你查看網頁的來源。 你可以在執行時跟蹤 JavaScript,將調試語句打印到控制臺,以及查看網絡請求和資源等內容。
里有一個關于使用 Chrome 開發工具的教程。如果你使用的 Firefox,可以查看本教程。
實踐基礎
在這一點上,關于JavaScript還有很多東西需要學習。然而,最后一節包含了許多新信息。我想我們該休息一下,做幾個實踐了。它們有助于鞏固你剛剛學到的一些概念。
對于實踐1,轉到 AirBnB,打開瀏覽器的頁面檢查器,然后單擊控制臺選項卡。在這里,你可以在頁面上執行JavaScript。我們要做的是通過操縱頁面上的一些元素來獲得一些樂趣。看看你是否可以完成以下所有的 DOM 操作。
選擇具有唯一類名的標題標簽并更改文本
選擇頁面上的任何元素并將其刪除
選擇任意元素并更改其CSS屬性之一
*?選擇一個特定的區域標簽,并向下移動250像素
*?選擇任何組件,如面板,并調整其透明度
定義一個名為 doS??omething 的函數,該函數j里定義一下alert (“Hello world”) 然后執行它
選擇一個特定的段落標記,向其中注冊一個 click 事件,并在每次事件被觸發時運行 doSomething
如果您遇到困難,請參考 JavaScript 函數和幫助程序指南。這些任務大部分都是基于它。以下是如何完成第一個要點的示例:
var header = document.querySelector(‘.text-branding’) header.innerText = ‘Boop"
這個實踐的主要目的是學習一些關于 JavaScript 和 DOM 操作的知識,并看到它們的實際應用。
使用 CodePen,編寫一個使用DOM操作并需要一些編程邏輯來運行的基礎JavaScript 實踐。這個實踐的重點是把你在《前端練級攻略》第 1 部分中學到的一些東西和 JavaScript結合起來。這里有幾個可以作為啟發的參考例子。
Mood Color Generator
計算器
JavaScript 測試
Playable Canvas Asteroids
更多的 JavaScript現在你已經了解了一些 JavaScript并進行了一些實踐,我們將繼續學習一些更高級的概念。下面的概念并不直接相關。我將它們分組在本節中,因為它們對于理解如何構建更復雜的前端系統是必要的。一旦你進入框架部分,你將更好地理解并使用它們。
當你使用JavaScript進行更多工作時,你將遇到一些更高級別的概念。 以下其中一些概念的列表。 如果有時間,仔細閱讀每一個要點 此外,如果你想補充學習其它內容,Eloquent JavaScript 涵蓋了大部分內容。
繼承與原型鏈
作用域
事件輪詢
事件冒泡
Apply, call, 和 bind
回調函數和 promise
變量和函數的提升
柯里化
JavaScript如何與DOM交互有兩種方法:命令式和聲明式。一方面,聲明式編程關注所發生的事情。另一方面,命令式編程關注的是什么以及如何實現。
var hero = document.querySelector(".hero") hero.addEventListener(‘click’, function() { var newChild = document.createElement(‘p’) newChild.appendChild(document.createTextNode(‘Hello world!’)) newChild.setAttribute(‘class’, ‘text’) newChild.setAttribute(‘data-info’, ‘header’) hero.appendChild(newChild) }) }
這是命令式編程的一個例子,我們手動查詢一個元素并將 UI 狀態存儲在 DOM 中。換句話說,專注于如何實現某件事。這段代碼最大的問題是它很脆弱。如果處理代碼的人將 HTML中 的類名從 hero 更改為villain,事件偵聽器將不再觸發,因為 DOM 中沒有 hero 類。
聲明式編程解決了這個問題。你不必選擇元素,而是將其留給您正在使用的框架或庫。這讓你專注于做什么而不是如何做。要了解更多信息,請查看 JavaScript的狀態——從命令式轉換到聲明式,以及 Web開發:聲明式vs.命令式。
在這些文章和教程中,你可能已經多次看到 Ajax 這個術語。Ajax 是一種允許 web 頁面使用 JavaScript 與服務器交互的技術
例如,當你在網站上提交表單時,它收集你的輸入并發出 HTTP 請求,將數據發送到服務器。當你在Twitter 上發布一條 tweet 時,你的 witter 客戶機向 Twitter 的服務器 API 發出 HTTP 請求,并使用服務器響應更新頁面。
有關 Ajax 的閱讀,請查看什么是Ajax。如果你仍然沒有完全理解 AJAX 的概念,請看看 Explain it like i’m 5, what is Ajax。如果這些還不夠,你還可以閱讀關于 HTTP 的JavaScript 章節。
今天,HTTP 請求的瀏覽器標準是 Fetch。 你可以在 Dan Walsh 的這篇文章中閱讀有關 Fetch 的更多信息。 它介紹了Fetch 的工作原理以及如何使用它。 你還可以在此處找到帶文檔的 Fetch polyfill。
到目前為止,你一直在使用 JavaScript 進行 DOM 操作。事實上,有很多 DOM 操作庫提供api 來簡化你編寫的代碼。
最流行的 DOM 操作庫之一是 jQuery。請記住,jQuery 是一個命令式庫。它是在前端系統像今天這樣復雜之前編寫的。如今,管理復雜 UI 是聲明性框架和庫,如 Vue、Angular 和 React。但是,我仍然建議你學習jQuery,因為在你的前端職業生涯中很可能會遇到它。
要學習j Query 的基礎知識,請查看 jQuery學習中心。它一步一步地通過一些重要的概念,比如動畫和事件處理。如果你想要更多的動手教程,可以看看 Codecademy 的 jQuery課程。
理解?JavaScript?的另一個重要概念是?ECMAScrip?t以及它與?JavaScript?的關系。今天,你平常看到是兩種主要的?JavaScript?風格:ES5?和?ES6。ES5?和?ES6?是?JavaScript?使用的?ECMAScript?標準。你可以將它們看作JavaScript的版本。ES5?的最終草案是在2009年完成的,到目前為止你一直在使用它。
ES6,也稱為 ES2015,是一個新標準,它為JavaScript帶來了新的語言結構,比如常量、類和模板字符串。值得注意的是,ES6 帶來了新的語言特性,但仍然使用 ES5 從語義上定義它們。例如,ES6 中的類只是JavaScript原型繼承的語法糖。
了解 ES5和 ES6 是非常重要的,因為今天你會看到使用這兩種方法的應用程序。 ES5, ES6, ES2016, ES.Next:下一步:JavaScript版本控制是怎么回事 這是一篇很好介紹了 ES6 相關的知識, Dan Wahlin的 ES6入門-下一版本的JavaScript正在發生什么。之后,你可以在 ES6 特性中看到從ES5 到 ES6 的完整變化列表。如果你想要更多,請查看這個包含 ES6 特性的Github存儲庫。
更多的練習如果你已經到了這一步,恭喜你自己。你已經了解了很多JavaScript。讓我們把你學到的一些東西付諸實踐。
練習3 將你所學的 HTML 和 CSS 知識與 JavaScript 入門課程結合起來。在這個實驗中,你將創建自己設計的時鐘,并使其與 JavaScript 交互。在開始之前,我建議閱讀 解耦HTML、CSS和JavaScript的教程,以了解在混合使用 JavaScript 時的基本 CSS 類命名約定。我還在 CodePen上準備了一份筆的清單,你可以作為這次練習的參考。有關更多示例,請在 CodePen 上搜索clock。
Flat Clock
jQuery Wall Clock
Fancy Clock
Retro Clock
Simple JavaScript Clock
你可以用兩種方法做這個實驗。你可以先用 HTML 和 CSS 設計和創建布局,然后用 JavaScript 增加交互性?;蛘吣憧梢韵染帉慗 avaScript 邏輯,然后再進入布局。此外,你可以使用jQuery,但也可以隨意使用純 JavaScript。
JavaScript框架掌握了JavaScript的基礎知識之后,是時候學習 JavaScript 框架了??蚣苁?JavaScript 庫,可以幫助你構造和組織代碼。JavaScript 框架為開發人員提供了復雜前端問題的可重復解決方案,比如狀態管理、路由和性能優化。它們通常用于構建web應用程序。
我不會講解每個JavaScript框架,這里有幾個框架的快速預覽:Angular、React + Flux、Ember、Aurelia、Vue和Meteor。你不必學習每個框架。挑一個,好好學習。不要追逐框架,相反,要理解框架所基于的底層編程哲學和原則。
在查看框架之前,理解框架傾向于使用的一些架構模式是很重要的:MVC(Model–view–controller)、MVVM(Model–view–viewmodel)v和vMVP(Model–view–presenter)。這些模式被設計成在應用層之間創建清晰的關注點分離。
關注點分離是一種設計原則,主要思想是將應用程序拆分為不同的域特定層。 例如,你可以使用JavaScript 對象(通常稱為模型)來存儲狀態,而不是讓 HTML 保持應用程序狀態。
要了解更多關于這些模式的信息,請先閱讀 Chrome Developers 的 MVC。之后,閱讀理解 MVC 和MVP(面向JavaScript和主干開發人員)。在那篇文章中,不要擔心學不會,看不懂,只需理解 MVC和 MVP 的部分概念即可。
Addy Osman 還寫了關于 MVVM 的 理解 MVVM 的JavaScript開發人員指南。要了解 MVC 的起源及其產生的原因,請閱讀 Martin Fowler 關于GUI體系結構的文章。最后,閱讀 JavaScript MV* Patterns一節,學習 JavaScript 設計模式。學習JavaScript設計模式是一本很棒的免費在線書籍。
JavaScript 框架不會重新發明輪子。它們中的大多數依賴于設計模式。你可以將設計模式視為解決軟件開發中常見問題的通用模板。
雖然理解 JavaScript 設計模式并不是學習框架的先決條件,但我建議在有時間的時候可以看看以下幾種設計模式。
裝飾器模式
工廠模式
單例模式
揭示模式
觀察者模式
理解并能夠實現其中的一些設計模式不僅會使你成為更好的工程師,而且還會幫助你理解一些框架的底層功能。
AngularJS?是一個JavaScript MVC?框架,有時也是 MVVM 框架。它由谷歌維護,并在2010年首次發布時席卷了 JavaScript 社區。
Angular 是一個聲明性框架。幫助我理解如何從命令式編程過渡到聲明式JavaScript編程的最有幫助的文章之一是在StackOverflow上的 AngularJS 與 jQuery有何不同。
如果你想了解更多關于 Angular 的知識,請查看 Angular文檔。他們還提供了一個名為 Angular Cat 的教程,可以讓你馬上投入到編程中去。Tim Jacobi 在 Github知識庫中提供了一個更完整的 Angular 學習指南。此外,看看約翰·帕帕寫的這本權威的最佳實踐風格指南。
Angular 解決了開發人員在構建復雜的前端系統時所面臨的許多問題。另一個流行的工具是 React,它是一個用于構建用戶界面的庫。你可以把它想象成 MVC 中的 V。因為 React 只是一個庫,所以它通常使用一個稱為 Flux 的架構。
Facebook設計React和Flux是為了解決MVC的一些缺點及其在規模上的問題??纯此麄冎难菔?黑客方式:重新思考Facebook的Web應用程序開發。它超過了Flux,它起源于此。
要開始學習 React 和 Flux,首先要學習 React。一個好的入門讀物是 React文檔。在那之后,看看 React.js Introduction For People Who Know Just Enough jQuery To Get By ,幫助你 從jQuery 的思維模式過渡過來。
一旦你對 React 有了基本的了解,開始學習 Flux。一個好的起點是官方的Flux文檔。在那之后,看看 Awesome React,這是一個精選的鏈接列表,可以幫助你在學習上更進一步。
練習與框架現在你已經掌握了 JavaScript 框架和架構模式的一些基本知識,現在是時候將它付諸實踐了。 在這兩個練習中,重點是應用你學到的架構概念。 特別是,保持您的代碼 DRY,明確分離關注點,并遵守單一責任原則。
練習 5 是使用不依賴框架的 JavaScript 分解和重構 Todo MVC 應用程序。這個練習的目的是向你展示 MVC 如何在不混合框架特定語法的情況下工作。
首先,在TodoMVC上查看最終結果。第一步是在本地創建一個新項目,并首先建立 MVC 的三個組件。由于這是一個復雜的實驗,請參考 Github 存儲庫中的完整源代碼。如果你不能完全復制這個項目或者沒有時間,也沒關系。下載 repo 代碼并嘗試使用不同的 MVC 組件,直到你理解它們之間的關系。
練習 5 是應用 MVC 的一個很好的練習,理解 MVC 是學習 JavaScript 框架的重要一步。 練習 5 是按照 Scotch.io的教程來構建一個帶有 Angular 的 Etsy 克隆。
使用Angular構建一個Etsy克隆,Stamplay 將教你如何使用 Angular 構建一個 web 應用程序,如何使用 api 構建接口,以及如何構造大型項目。完成本教程后,能夠回答以下問題。
什么是 web 應用程序");
MVC/MVVM 如何應用于 Angular?
什么是API,它做什么
如何組織和構造大型代碼庫
將 UI 分解為指令組件有什么好處?
如果你想嘗試構建更多 Angular web 應用程序,可以嘗試使用 AngularJS & Firebase構建一個實時狀態更新應用程序。
持續關注時事就像前端的其他部分一樣,JavaScript的發展很快,保持持續關注是很重要的。
下面是一個網站、博客和論壇的列表,這些網站、博客和論壇閱讀起來既有趣又信息豐富。
Smashing Magazine
JavaScript Weekly
Reddit JavaScript
JavaScript Jabber
通過例子學習一如既往,最好的學習方法是以身作則。
JavaScript樣式指南是一組編碼規范,旨在幫助保持代碼的可讀性和可維護性。
AirBnB JavaScript Styleguide
Principles of Writing Consistent, Idiomatic JavaScript
Node Styleguide
MDN Coding Style
我無法強調閱讀好的代碼是多么有幫助,了解如何在獲取新內容時搜索Github的相關存儲庫。
Lodash
Underscore
Babel
Ghost
NodeBB
KeystoneJS
總結在本指南結束時,您應該已經牢牢掌握了 JavaScript 的基本原理以及如何將它們應用到網絡上。請記住,本指南為你提供了一個總體路線圖。如果你精通前端,花時間在項目上應用這些概念是很重要的。你做的項目越多,對它們越有熱情,你會學到更多。
你的點贊是我持續分享好東西的動力,歡迎點贊!
一個笨笨的碼農,我的世界只能終身學習!
更多內容請關注公眾號《大遷世界》!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/6767.html
摘要:,谷歌給的一份性能指南和最佳實踐。目前而言,前端社區有三大框架和。隨后重點講述了和兩大前端框架,給出了大量的文章教程和相關資源列表。我認為,使用函數式編程方式,更加符合后端程序員的思路,而是更符合前端工程師習慣的框架。 showImg(https://segmentfault.com/img/bVbjQAM?w=1142&h=640); 這個是我訂閱 陳皓老師在極客上的專欄《左耳聽風》...
摘要:,谷歌給的一份性能指南和最佳實踐。目前而言,前端社區有三大框架和。隨后重點講述了和兩大前端框架,給出了大量的文章教程和相關資源列表。我認為,使用函數式編程方式,更加符合后端程序員的思路,而是更符合前端工程師習慣的框架。 showImg(https://segmentfault.com/img/bVbjQAM?w=1142&h=640); 這個是我訂閱 陳皓老師在極客上的專欄《左耳聽風》...
摘要:感謝內容提供者金牛區吳迪軟件開發工作室文章目錄一高效學習端正學習態度面對枯燥和量大的知識深度,歸納和堅持實踐學習和閱讀源碼源頭原理和知識地圖二程序員練級攻略入門開篇詞零基礎啟蒙正式入門三程序員練級攻略進階程序員素養理論學科 ...
摘要:是文檔的一種表示結構。這些任務大部分都是基于它。這個實踐的重點是把你在前端練級攻略第部分中學到的一些東西和結合起來。一旦你進入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進行操作。它是在前端系統像今天這樣復雜之前編寫的。 本文是 前端練級攻略 第二部分,第一部分請看下面: 前端練級攻略(第一部分) 在第二部分,我們將重點學習 JavaScript 作為一種獨立的語言,如...
閱讀 1634·2021-09-22 15:25
閱讀 1511·2021-09-07 10:06
閱讀 3190·2019-08-30 15:53
閱讀 1095·2019-08-29 13:12
閱讀 3385·2019-08-29 13:07
閱讀 734·2019-08-28 18:19
閱讀 2277·2019-08-27 10:57
閱讀 989·2019-08-26 13:29