- Hands-On Design Patterns with React Native
- Mateusz Grzesiukiewicz
- 358字
- 2021-08-13 15:13:03
Airbnb React style guide rules
The Airbnb React style guide defines tens of well-thought-out rules. This is a great resource and a foundation for your next React project. I highly recommend looking into them. You can find the Airbnb React style guide at https://github.com/airbnb/javascript/tree/master/react.
However, everyone should find their own style. Mine just adapts a few things from the Airbnb:
- comma-dangle: Airbnb advises that you leave a trailing comma at the end of array multiline elements, lists, or object multiline key-value lists. This is not what I'm used to. I prefer the JSON style, which does not leave a trailing comma:
// My preference const hero = { firstName: 'Dana', lastName: 'Scully' }; const heroes = [ 'Batman', 'Superman' ]; // Airbnb style guide const hero = { firstName: 'Dana', lastName: 'Scully', }; const heroes = [ 'Batman', 'Superman', ];
- react/jsx-filename-extension: In my opinion, this rule should be changed in the style guide. It tries to convince you to use the .jsx extension for files using JSX. I don't agree with this. I would like to quote Dan Abramov's comment on this matter:
"The distinction between .js and .jsx files was useful before Babel, but it’s not that useful anymore.
There are other syntax extensions (for example, Flow). What would you call a JS file that uses Flow? .flow.js? What about a JSX file that uses Flow? .flow.jsx? What about some other experimental syntax? .flow.stage-1.jsx?
Most editors are configurable, so you can tell them to use a JSX-capable syntax scheme for .js files. Since JSX (or Flow) are strict supersets of JS, I don’t see this as an issue."
– Dan Abramov: https://github.com/facebook/create-react-app/issues/87#issuecomment-234627904.
There are other syntax extensions (for example, Flow). What would you call a JS file that uses Flow? .flow.js? What about a JSX file that uses Flow? .flow.jsx? What about some other experimental syntax? .flow.stage-1.jsx?
Most editors are configurable, so you can tell them to use a JSX-capable syntax scheme for .js files. Since JSX (or Flow) are strict supersets of JS, I don’t see this as an issue."
– Dan Abramov: https://github.com/facebook/create-react-app/issues/87#issuecomment-234627904.
- no-use-before-define: This is a smart rule. It prevents you from using variables and functions that are defined later, besides the fact that the JavaScript hoisting mechanism lets you to do so. However, I like to put my StyleSheets in the bottom on every component file. Hence, I have relaxed this rule to allow usage of variables before their definition.
I also prefer an indentation of four spaces for clarity when I copy snippets into this book.
推薦閱讀
- JavaScript前端開發模塊化教程
- Python for Secret Agents:Volume II
- .NET 4.0面向對象編程漫談:基礎篇
- FreeSWITCH 1.6 Cookbook
- 新手學Visual C# 2008程序設計
- Python 3網絡爬蟲實戰
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- 智能手機故障檢測與維修從入門到精通
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- Delphi開發典型模塊大全(修訂版)
- C語言程序設計
- Python預測分析與機器學習
- 交互設計師成長手冊:從零開始學交互
- 讓Python遇上Office:從編程入門到自動化辦公實踐
- Instant Pygame for Python Game Development How-to