Skip to main content

Hiểu hơn về React default props



Trong bài viết này, ta sẽ hiểu hơn về default props trong React.

Short Intro

Reactjs, JSX-based JavaScript UI là một thư viện JS phổ biến nhất hiện nay. Hàng triệu ứng dụng được xây dựng bằng React, nó cung cấp khá nhiều ý tưởng:

- Performance tốt
- Ứng dụng nhỏ
- Vitual DOM
- Tái sử dụng code
- UI xây dựng bằng Components
- Chạy trên nhiều nền tảng: Mobile/Tablet and Desktop
- Dễ dàng cho người mới bắt đầu

Một React component y như một HTML element và component cơ bản là một class bao gồm:

- props
- data
- state ( dùng setState() để thay đổi )
- markup ( dùng render() )

Tất cả những điều trên sẽ tạo ra một UI widget.

Components là một công cụ chính để ta xây dựng giao diện UI. Tất cả các ứng dụng React sẽ có root component, nó thương được gọi là App component.

React cung cấp các component truyền data cho nhau và các events khác nhau. Bạn có thể viết một component và sử dụng nó như là một component con - chúng thì có liên kết đến nhau.

Mỗi component sẽ bao gồm các giá trị của nó:
- Data input vào là gì ?
- Làm sao để dùng nó ?

Problem Statement

React components cần truyền vào tham số props.


Đây là ví dụ cho việc truyền data từ component cha.


Ta truyền thuộc tính `catName` có giá trị là `Picky`, CatComponent sẽ nhận giá trị đó thông qua props. Tất cả các thuộc tính được truyền từ cha sang con sẽ đều thông qua props.

Vấn đề ở đây là nếu như Component cha không truyền data qua Component con thì sao ?

Tất nhiên Component con sẽ nhận được giá trị props là undefined.

Một số vấn đề khác nữa là nếu như Component con không có giá trị, hay ở đây chính là undefined thì có thể làm ứng dụng không render ra được dẫn tới crash ứng dụng.

The Solution — defaultProps

Cách giải quyết vấn đề, ta có thể sử dụng toán tử logic || để chắc chắn rằng nếu như không có props thì hiển thị giá trị còn lại.


Với cách trên nó sẽ chạy nhưng không phải là cách tốt nhất. React cung cấp một biện pháp tốt hơn, đó chính là defaultProps.

defaultProps là một thuộc tính trong React component sử dụng để xét mặc định giá trị value cho props. Nó sẽ thay đổi khi có props mới được truyền qua.

Ở phần tới ta sẽ thấy cách sử dụng defaultProps bằng ES6 class và function component.

ES6 React Component

Sử dụng ES6 class, ta sẽ dùng thuộc tính static với tên là defaultProps.


Ta sử dụng thuộc tính static và xét defaultProps trong class CatComponent thì component sẽ sử dụng giá trị mặc định của props nếu như không có props khác được truyền qua.

Functional Component


Conclusion

Vậy là ta đã hiểu hơn một phần nào đó về việc sử dụng defaultProps trong React. Hy vọng bài viết hữu ích với các bạn.

Thanks for reading !

Resource: blog.bitsrc.io

Comments

Popular posts from this blog

Python cheatsheet for beginner

View on Github Recommended Tutorials Learn Python | CodeAcademy Progate Python Classes Video Tutorial for absolute beginners | YouTube Intro to Python | Udacity Python For Everybody Write Better Python Functions Learning Python: From Zero to Hero Automate the Boring Stuff with Python  - Recommended The New Boston Python | Youtube Think Python 2e - Green Tea Press A Byte of Python Project Euler A Whirlwind Tour of Python Python Data Science Handbook Python Class By Google  - Recommended Intro to Python for Data Science Python 3 for humans that want practical project exposure Learn Python the Hard Way Django - Python Try Django | YouTube Django Docs Django Girls MDN Web Docs SimpleIsBetterThanComplex Blog Tango With Django Book Django Class-Based Views The Algorithms Python Flask - Python The Flask Mega Tutorial Writing shorthand statements in python Python is having shorthand statements and shorthand operators. These thin...

Pretty JSON Output

Bạn cảm thấy khó chịu khi JSON output trên cùng 1 dòng, điều đó sẽ chấm dứt với JSON.stringify giúp output ngắn gọn hơn và dễ nhìn hơn. Chỉ cần truyền vào tham số thứ 3 là khoảng cách (space) BOOM ! Tab Spacing Để sử dụng Tab bạn chỉ cần truyền vào tham số "\t" . Ví dụ: Understanding the “Space” argument Tham số thứ 3 của JSON.stringify sử dụng khoảng cách. Nó sẽ giúp cho string output của bạn gọn gàng và dễ nhìn hơn. Nó có 2 loại tham số truyền vào: Number và String . a. Number Bạn có thể dùng bất kì các số từ 0 tới 10. b. String Bạn có thể dùng string thay cho khoảng trống của JSON.stringify. Tối đa bạn chỉ được dùng 10 kí tự. Nếu lớn hơn nó sẽ chỉ lấy 10 kí tự đầu tiên. Hãy thử nó: What is the 2nd parameter ? Tham số thứ 2 dùng để replace. Nó sẽ có 2 loại: Array và Function. a. Array Tôi sẽ demo thử cho bạn với array để thấy sự thú vị của nó: Bạn có thể chọn các cặp key-value bạn muốn output ra...

Google Hacking - Kiến thức cơ bản mà Pentester thường bỏ qua!

Mình để ý thấy có nhiều bạn đang bị lu mờ giữa 2 khái niệm Pentest và Hacking. Thực sự thì cũng sẽ khó có thể phân biệt rõ ràng nhưng "Hacking" là cụ từ bạn sẽ sử dụng khi bạn tìm thấy lổ hổng ( cả về lổ hổng logic và lổ hổng đến từ tech ) và khai thác được lổ hổng đó. Còn Pentest theo mình thì chỉ là kiểm tra đánh giá tính bảo mật của một hệ thống hoặc một server nào đó thôi. OK! Bắt đầu với chủ đề mà mình đề cập tới sau đây. Có nhiều bạn trẻ hỏi mình: "Làm sao để có thể nhanh chóng tìm được lỗi từ ứng dụng web?". Câu trả lời của mình là:"Hãy bắt đầu với Google Hacking." Google Hacking là một thuật ngữ mà gói gọn một loạt các kĩ thuật cho phép truy vấn trên công cụ tìm kiếm Google.com, đôi khi được dùng để xác định các lổ hổng trong các ứng dụng web cụ thể.(Cụ thể như thế nào thì mình sẽ cố gắng giải thích tiếp trong giới hạn kiến thức mà mình biết). Bên cạnh việc truy vấn từ google có thể tiết lộ các lỗ hổng trong các ứng dụng web, Go...