Nhập theo cấu trúc
- các thành phần
- hình ảnh
- bảng định kiểu
- móc
- tính thiết thực
1 2 3 4 5 6 7 | <span class="token keyword">import</span> <span class="token punctuation">{</span> Routes <span class="token punctuation">,</span> Route <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"react-router-dom"</span> <span class="token punctuation">;</span> <span class="token keyword">import</span> <span class="token punctuation">{</span> createSlice <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"@reduxjs/toolkit"</span> <span class="token punctuation">;</span> <span class="token keyword">import</span> <span class="token punctuation">{</span> Menu <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"@headlessui/react"</span> <span class="token punctuation">;</span> <span class="token keyword">import</span> Home <span class="token keyword">from</span> <span class="token string">"./Home"</span> <span class="token punctuation">;</span> <span class="token keyword">import</span> logo <span class="token keyword">from</span> <span class="token string">"./logo.svg"</span> <span class="token punctuation">;</span> <span class="token keyword">import</span> <span class="token string">"./App.css"</span> <span class="token punctuation">;</span> |
Tuân thủ quy định đặt tên
- PascalCase chủ yếu dành cho thành phần
- camelCase chủ yếu đặt cho hàm, hook, biến, mảng
1 2 3 4 5 | <span class="token keyword">const</span> <span class="token punctuation">[</span> firstName <span class="token punctuation">,</span> setFirstName <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useState</span> <span class="token punctuation">(</span> <span class="token string">"Ihechikara"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> studentList <span class="token operator">=</span> <span class="token punctuation">[</span> <span class="token punctuation">]</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> studentObject <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> <span class="token keyword">const</span> <span class="token function-variable function">getStudent</span> <span class="token operator">=</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> |
Gom group state
- thầy vì
1 2 3 | <span class="token keyword">const</span> <span class="token punctuation">[</span> username <span class="token punctuation">,</span> setusername <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useState</span> <span class="token punctuation">(</span> <span class="token string">''</span> <span class="token punctuation">)</span> <span class="token keyword">const</span> <span class="token punctuation">[</span> password <span class="token punctuation">,</span> setpassword <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useState</span> <span class="token punctuation">(</span> <span class="token string">''</span> <span class="token punctuation">)</span> |
- Nên sử dụng
1 2 | <span class="token keyword">const</span> <span class="token punctuation">[</span> user <span class="token punctuation">,</span> setuser <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useState</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> |
đạo cụ hủy diệt
1 2 | <span class="token keyword">const</span> <span class="token punctuation">[</span> user <span class="token punctuation">,</span> setuser <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">useState</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> |
Làm rõ các biến
1 2 3 4 5 | <span class="token comment">// Declare them as capitalized named constants.</span> <span class="token keyword">const</span> <span class="token constant">MILLISECONDS_PER_HOUR</span> <span class="token operator">=</span> <span class="token number">60</span> <span class="token operator">*</span> <span class="token number">60</span> <span class="token operator">*</span> <span class="token number">1000</span> <span class="token punctuation">;</span> <span class="token comment">// 36000000</span> <span class="token function">setTimeout</span> <span class="token punctuation">(</span> restart <span class="token punctuation">,</span> <span class="token constant">MILLISECONDS_PER_HOUR</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Không thể lặp lại tên biến không cần thiết
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <span class="token comment">// old</span> type User <span class="token operator">=</span> <span class="token punctuation">{</span> userName <span class="token operator">:</span> string <span class="token punctuation">;</span> userLastName <span class="token operator">:</span> string <span class="token punctuation">;</span> userAge <span class="token operator">:</span> number <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">print</span> <span class="token punctuation">(</span> <span class="token parameter">user <span class="token operator">:</span> User</span> <span class="token punctuation">)</span> <span class="token operator">:</span> <span class="token keyword">void</span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> userName <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> userLastName <span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> (</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> userAge <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token string">)</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">//new</span> type User <span class="token operator">=</span> <span class="token punctuation">{</span> name <span class="token operator">:</span> string <span class="token punctuation">;</span> lastName <span class="token operator">:</span> string <span class="token punctuation">;</span> age <span class="token operator">:</span> number <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">print</span> <span class="token punctuation">(</span> <span class="token parameter">user <span class="token operator">:</span> User</span> <span class="token punctuation">)</span> <span class="token operator">:</span> <span class="token keyword">void</span> <span class="token punctuation">{</span> console <span class="token punctuation">.</span> <span class="token function">log</span> <span class="token punctuation">(</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> name <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> lastName <span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> (</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> age <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token string">)</span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> |
Tạo đối tượng tham số khi có 2 tham số trở lên
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <span class="token comment">//old </span> type UserStatus <span class="token operator">=</span> <span class="token string">'online'</span> <span class="token operator">|</span> <span class="token string">'offline'</span> <span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token parameter">name <span class="token operator">:</span> string <span class="token punctuation">,</span> lastName <span class="token operator">:</span> string <span class="token punctuation">,</span> age <span class="token operator">:</span> number <span class="token punctuation">,</span> status <span class="token operator">:</span> UserStatus</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// ...</span> <span class="token punctuation">}</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token string">'Gapur'</span> <span class="token punctuation">,</span> <span class="token string">'Kassym'</span> <span class="token punctuation">,</span> <span class="token number">29</span> <span class="token punctuation">,</span> <span class="token string">'online'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">//new</span> type UserStatus <span class="token operator">=</span> <span class="token string">'online'</span> <span class="token operator">|</span> <span class="token string">'offline'</span> <span class="token punctuation">;</span> type User <span class="token operator">=</span> <span class="token punctuation">{</span> name <span class="token operator">:</span> string <span class="token punctuation">,</span> lastName <span class="token operator">:</span> string <span class="token punctuation">,</span> age <span class="token operator">:</span> number <span class="token punctuation">,</span> status <span class="token operator">:</span> UserStatus <span class="token punctuation">}</span> <span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token parameter">user <span class="token operator">:</span> User</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// ...</span> <span class="token punctuation">}</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token punctuation">{</span> name <span class="token operator">:</span> <span class="token string">'Gapur'</span> <span class="token punctuation">,</span> lastName <span class="token operator">:</span> <span class="token string">'Kassym'</span> <span class="token punctuation">,</span> age <span class="token operator">:</span> <span class="token number">29</span> <span class="token punctuation">,</span> status <span class="token operator">:</span> <span class="token string">'online'</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Thành phần quán tính nhất
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <span class="token comment">// old</span> <span class="token keyword">const</span> <span class="token function-variable function">renderHeader</span> <span class="token operator">=</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token punctuation">(</span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> span</span> <span class="token punctuation">></span></span> <span class="token plain-text">User:</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">{</span> user <span class="token punctuation">.</span> name <span class="token operator">&&</span> user <span class="token punctuation">.</span> lastName <span class="token operator">&&</span> <span class="token function">renderUserInfo</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">const</span> <span class="token function-variable function">renderUserInfo</span> <span class="token operator">=</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">{</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> name <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> lastName <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">}</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> <span class="token comment">//new</span> <span class="token keyword">const</span> <span class="token function-variable function">renderHeader</span> <span class="token operator">=</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token punctuation">(</span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> span</span> <span class="token punctuation">></span></span> <span class="token plain-text">User:</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">{</span> <span class="token function">renderUserInfo</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">const</span> <span class="token function-variable function">renderUserInfo</span> <span class="token operator">=</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> user <span class="token punctuation">.</span> name <span class="token operator">&&</span> user <span class="token punctuation">.</span> lastName <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">{</span> <span class="token template-string"><span class="token template-punctuation string">`</span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> name <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span> user <span class="token punctuation">.</span> lastName <span class="token interpolation-punctuation punctuation">}</span></span> <span class="token template-punctuation string">`</span></span> <span class="token punctuation">}</span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> span</span> <span class="token punctuation">></span></span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token keyword">null</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> |
Create a variable to set default value
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span class="token comment">//old</span> <span class="token keyword">function</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token parameter">user <span class="token operator">:</span> User</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> user <span class="token punctuation">.</span> name <span class="token operator">=</span> user <span class="token punctuation">.</span> name <span class="token operator">||</span> <span class="token string">'User'</span> <span class="token punctuation">;</span> user <span class="token punctuation">.</span> lastName <span class="token operator">=</span> user <span class="token punctuation">.</span> lastName <span class="token operator">||</span> <span class="token string">''</span> <span class="token punctuation">;</span> user <span class="token punctuation">.</span> age <span class="token operator">=</span> user <span class="token punctuation">.</span> age <span class="token operator">||</span> <span class="token number">18</span> <span class="token punctuation">;</span> <span class="token comment">// ...</span> <span class="token punctuation">}</span> <span class="token comment">//new</span> <span class="token keyword">function</span> <span class="token function">createUser</span> <span class="token punctuation">(</span> <span class="token parameter">user <span class="token operator">:</span> User</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> userWithDefaultValues <span class="token operator">=</span> <span class="token punctuation">{</span> name <span class="token operator">:</span> <span class="token string">'User'</span> <span class="token punctuation">,</span> lastName <span class="token operator">:</span> <span class="token string">''</span> <span class="token punctuation">,</span> age <span class="token operator">:</span> <span class="token number">18</span> <span class="token punctuation">,</span> <span class="token operator">...</span> user <span class="token punctuation">,</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> <span class="token comment">// ...</span> <span class="token punctuation">}</span> |