Day12 Functional Component的state - useState

介绍完後从外部传入的Props後,我们来讲React的第二种资料模组 - state
系列中会主要以Functional Component的功能为主。

在先前,React只能在Class Component中使用state存放资料,但在React 16.8 之後增加了Hook! 之中增加的新功能,让Functional component使用原本不能使用的 state 以及生命周期功能,让Functional component的运用方式更加多元。


useState

Hook中的useState中提供了的类似於Class Component的state功能,让Functional元件里能有独立的资料模组,不会和其他元件资料互相影响。

如何使用useState

需要在一开始引入useState

import React, { useState } from 'react';

useState放置的位置,在Functional Component函式中的return之前

function App() {

	//可以在这宣告变数使用useState()

  return //省略...
}

宣告变数分别对应useState()回传值的阵列中的值:

  • text:宣告名为text的state变数 -可以在 useState()中的传入的参数作为text这个state变数资料的预设值。
  • setText :更改state变数的函式名称,text这个state只能透过setText()去变动资料,通常命名使用set+State变数名的小驼峰写法。
const [text, setText]= useState('预设文字');

将useState()使用在component里面看看

import React, { useState } from 'react';
import './App.css';

function App() {

  const [text, setText]= useState('预设文字'); //宣告变数使用useState
  

  return(
    <div className="App">
      <p>输入文字:<span>{text}</span></p>
      <input  onChange={(event)=> setText(event.target.value)} />
    </div>
  );
}

export default App;

在input里面在onChange中,把输入的value透过{ }中使用我们自订的setText()回传变动的文字。

state未更改前的预设资料画面

https://ithelp.ithome.com.tw/upload/images/20210927/20140303CJMev5QLG3.png

在input输入"text文字改变罗!"来改变state,显示在中

https://ithelp.ithome.com.tw/upload/images/20210927/20140303Y54GPRC9q3.png

成功更改state罗~


<<:  TypeScript 能手养成之旅 Day 11 明文型别(Literal Types)

>>:  [Day 12] Forensics 小挑战

Day 9:看看别人做了什麽?

前篇整理了学习资源,这篇来看看别人用 JUCE 干了哪些好事。 这位日本开发者用 JUCE 开发处理...

[Day 1] 身为一名普通 iOS 开发者所需的程序以外的知识 Intro

前言 Hi 我是一名普通的 iOS 开发者,兴趣使然的 UI 设计师。不小心参与了几年 iOS 开发...

Day11表格(HTML)

HTML表格 顾名思义 就是一个可以放入资料的容器 并且以表格的形式呈现给使用者 是个重要的功能 需...

【Day 03】从零开始的 Line Chatbot-建立专案

今天要来正式建立 Chatbot 的 Python 专案! 登入资料 进入 Line Develop...

Day 14 - PHP SDK: 用 Pure PHP 建立购物网 (上)

今天开始会分两天,上、下集来介绍单纯使用 PHP,不使用 PHP 框架的方法,来搭建一个购物网站。 ...