我目前正在学习React中的钩子概念,并试图理解下面的例子。
import { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
上面的示例增加了处理程序函数参数本身的计数器。如果我想修改事件处理函数内的计数值怎么办
考虑下面的例子:
setCount = () => {
//how can I modify count value here. Not sure if I can use setState to modify its value
//also I want to modify other state values as well here. How can I do that
}
<button onClick={() => setCount()}>
Click me
</button>
React useState是React钩子,允许你在功能组件中管理状态。
例如:
import React, { useState } from 'react'
const Example = () => {
// create the "counter" state
const [count, setCount] = useState(0)
return (
<div>
<p>Button clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Count + 1
</button>
</div>
)
}
export default Example
使用useState,您可以轻松地创建有状态的功能组件。
旧的等效方法,使用Component类和setState类组件是:
import React, { Component } from 'react'
class Example extends Component {
constructor(props) {
super(props)
this.state = { count: 0 }
}
render() {
const { count } = this.state
return (
<div>
<p>Button clicked {count} times</p>
<button onClick={() => this.setState({ count: count + 1 })}>
Count + 1
</button>
</div>
)
}
}
export default Example
来源:
React useState Hook:什么是新的和使用它
链接:
React Hooks文档
useState是一个钩子,它允许你在函数组件中使用状态变量。
React中有两种类型的组件:类组件和功能组件。
类组件是扩展自React的ES6类。组件,可以有状态和生命周期方法:
class Message extends React.Component {
constructor(props) {
super(props);
this.state = {
message: ‘’
};
}
componentDidMount() {
/* ... */
}
render() {
return <div>{this.state.message}</div>;
}
}
函数式组件是只接受参数作为组件属性并返回有效JSX的函数:
function Message(props) {
return <div>{props.message}</div>
}
// Or as an arrow function
const Message = (props) => <div>{props.message}</div>
如您所见,没有状态或生命周期方法。