Danh mụcThẻBài viết

admin

I'm a Full-stack developer

Thẻ

Linked List
Data Structure
Chat GPT
Design Pattern
Microservices
API
AWS CDK
ReactJS
AWS Lightsail
Flutter Mobile
Part 1: React Props and State
Ngày đăng: 18/06/2023

In this article, I will explain what is Props and State in React, and what is different between them. Before learning ReactJS, we should understand Props and State. This is basic for a newbie.


What is State in React?


State is an object that holds some information in a component. The important point is whenever state object is changed, the component is re-rendering.

Let's take an example. We have a DownloadButton component, The label default is Download. Used useState hook to change the label to Processing when the user clicked.


import React, { useState } from 'react';

function DownloadButton() {
  const [btnLabel, setBtnLabel] = useState('Download');

  const download = () => {
    setBtnLabel('Processing');
  }

  return (
    <div>
      <button onClick={download}>{btnLabel}</button>
    </div>
  );
}


What are Props in React?


Props are objects or values that are passed into a component. The main point is to pass data to your component and trigger State changes.

For example, we have 2 components that are ActionSession and DownloadButton. The DownloadButton component is children of ActionSession, it is received a value from the parent which is fileType. Then, the button label is changed after the fileType value is changed.


import React, { useState } from 'react';

interface DownloadButtonProps {
  fileType: 'csv' | 'excel';
}

function DownloadButton({ fileType }: DownloadButtonProps) {
  const [btnLabel, setBtnLabel] = useState('Download');

  const download = () => {
    setBtnLabel('Processing');
  }

  return (
    <div>
      <button onClick={download}>{btnLabel} - {fileType}</button>
    </div>
  );
}

function ActionSession() {
  return <DownloadButton fileType='csv'/>
}


What is different between Props and State?

Both Props and State are used to manage the data of a component but they are used in different ways and have different characteristics.


Props:

  • The data is passed from the parent component.
  • Can be used with State and functional components.
  • Cannot be modified.
  • Read-only.


State:

  • The Data is passed within the component only.
  • Can be modified.
  • Both read and write.


Thank you for reading!


Next articles:
PART 2: THE HOOKS ARE USED POPULARLY IN REACT
PART 3: REACT FRAGMENTS
Đề xuất

Part 5: Creating a Tag List Page on Ghost CMS
admin17/06/2023

Part 5: Creating a Tag List Page on Ghost CMS
In this article, I will show you how to create a Tag list page using the Casper theme.
Create S3 Bucket with AWS CDK
admin09/06/2023

Create S3 Bucket with AWS CDK
In this article, I introduce Amazon CDK and how to write AWS infrastructure-as-code using TypeScript. We will do it step by step.
TypeScript Design Pattern - Prototype
admin07/08/2023

TypeScript Design Pattern - Prototype
The prototype pattern is one of the Creational pattern groups. The responsibility is to create a new object through clone the existing object instead of using the new key. The new object is the same as the original object, and we can change its property does not impact the original object.
Mới nhất

Create Cognito User Pool with AWS CDK
admin09/06/2023

Create Cognito User Pool with AWS CDK
In the previous post, I showed you how to create a simple S3 bucket. Next, in this article, I will guide you to create a Cognito User Pool.
TypeScript Design Pattern - Singleton
admin07/08/2023

TypeScript Design Pattern - Singleton
The singleton ensures only a single install is created in a class and provides a method to access this instance everywhere in a codebase.
NodeJS Verify and Decode Cognito JWT Tokens
admin12/06/2023

NodeJS Verify and Decode Cognito JWT Tokens
In this article, I will show you how to verify and decode the Cognito JWT Tokens token.
Đinh Thành Công Blog

My website, where I write blogs on a variety of topics and where I have some experiments with new technologies.

hotlinelinkedinskypezalofacebook
DMCA.com Protection Status
Góp ý
Họ & Tên
Số điện thoại
Email
Nội dung
Tải ứng dụng
hotline

copyright © 2023 - AGAPIFA

Privacy
Term
About