- 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.
推薦閱讀
- UNIX編程藝術(shù)
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- 計算思維與算法入門
- 數(shù)據(jù)庫系統(tǒng)教程(第2版)
- Design Principles for Process:driven Architectures Using Oracle BPM and SOA Suite 12c
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- AWS Serverless架構(gòu):使用AWS從傳統(tǒng)部署方式向Serverless架構(gòu)遷移
- 軟件測試工程師面試秘籍
- 21天學(xué)通C++(第6版)
- Java Web開發(fā)技術(shù)教程
- Full-Stack React Projects
- Java Web開發(fā)詳解
- Creating Stunning Dashboards with QlikView
- 微信小程序開發(fā)與實戰(zhàn)(微課版)
- Java程序員面試筆試寶典(第2版)