課程目標
23 分鐘帶你學會現代化的元件樣式書寫方法:styled-components。
課程簡介
通過將 ES6 中的模板字串(template literals)特性創造性的運用到 CSS 編碼上,styled-components 成了前端社群現象級的 CSS-IN-JS 解決方案,能讓我們在不用擔心樣式和元件之間如何關聯的情況下用 CSS 書寫元件,讓樣式元件真正成為開發的基本單元。
那麼,如何在 React/React Native 專案中使用 styled-components?如何改造現有專案?如何提高程式碼複用度和適應變化的能力?共 8 小節,23 分鐘,本視訊教程將為你開啟 styled-components 的大門,讓你熟知 styled-components 的主要特性,視訊演示用的原始碼將會放在 Github 上供你除錯。
適用人群
- [必須]具備前端基礎知識,瞭解 ES6;
- [必須]具備 React 基礎知識,有開發經驗更好;
- [可選]期望跟上社群發展動態,學習最新的開發技術,如果滿足這點,前兩點可忽略;
- [可選]具備 React Native 基礎知識,有開發經驗的更好;
內容目錄
8. 在 React Native 中使用 styled-components
styled-components 也為 React Native 提供了很好的支援,哪些地方是完全相同的?哪些地方需要你注意?本節視訊為你解惑。視訊連結:pan.baidu.com/s/1bo7opeZ
7. 用 keyframes 實現介面動畫
恰到好處的動畫能讓使用者對你的應用愛不釋手,styled-components 提供的 keyframes 輔助函式能夠讓我們很容易的把 CSS 裡面的動畫遷移到元件中。視訊連結:pan.baidu.com/s/1hspJ0rE
6. 用 ThemeProvider 實現主題功能
把應用中常用的字型、顏色、尺寸集中起來管理能極大提高程式碼適應變化的能力,這種功能或設計可以常被稱為"主題"(亦可稱皮膚)的"作用",例項演示 styled-components 的主題機制。視訊連結:pan.baidu.com/s/1kVwyV0F
5. 用 injectGlobal 設定全域性樣式
元件化之後怎麼設定 body 樣式?因為 body 是無論如何不能被寫成一個元件的,好在 styled-components 給我們提供了 injectGlobal 輔助函式來設定頁面的全域性樣式。視訊連結:pan.baidu.com/s/1hrLXqvy
4. 用 extend 建立元件變種,實現樣式繼承
用 JS 書寫樣式就失去了繼承的能力?使用 styled-components 提供的 extend 機制,讓我們找回這種能力,單重繼承?多重繼承?隨你所需。視訊連結:pan.baidu.com/s/1i4WKzqt
3. 用 attrs 封裝元件屬性,提高程式碼複用
年年歲歲花相似,歲歲年年人不同,編寫程式碼同樣會有這樣的問題,使用 attrs 機制不僅讓我們在元件中封裝樣式,也能封裝屬性,極大的提高程式碼複用。視訊連結:pan.baidu.com/s/1pK97HMz
2. 用 props 調整元件樣式,真正發揮 JS 的威力
使用 styled-components 編寫元件的時候,可以在模板字串中傳入函式,或者表示式,這樣就可以根據傳給元件的 props 來調整元件的樣式,讓你真正體會到 CSS-IN-JS 的樂趣和威力。視訊連結:pan.baidu.com/s/1o81c23S
1. 用 styled-components 編寫簡單的 React 元件
例項演示使用 styled-components 編寫 React 元件基本步驟和語法,把要基於 classNames 才能實現的樣式關聯去掉,用純 CSS 的方式去書寫 React 元件。視訊連結:pan.baidu.com/s/1mhGzy56
原始碼連結
程式碼倉庫:wangshijun/course-styled-components-fundamentals
執行方法(建議安裝和使用 yarn)
git clone https://github.com/wangshijun/course-styled-components-fundamentals.git
cd course-styled-components-fundamentals
yarn
yarn start
# react-native 程式碼的執行直接參照 react-native 官網文件即可複製程式碼
要執行每節課的程式碼,只需要將倉庫 checkout 下面對應的版本。
執行環境
- Node.js v8.6.0
- React v16
- React Native v0.49.0
- VSCode v1.17.1 + Vim
- Chrome v61
參考資料
視訊下載
關注《前端週刊》微信公眾號:fullstackacademy,回覆 course-styled-components 即可獲取高清視訊教程下載地址。
最後,可能你有同學會問,我為什麼要做這個公開課?接下來的計劃是什麼?請閱讀好久不見,我總感覺欠你點什麼