setMenu((m) => {
if (m === 3) return 1
return m + 1
)
return (
<>
<MenuItem menu={ menu/>
<button onClick={ toggleMenu >toggle menu</button>
</>
)
可以看到 , 使用‘switch’可以很方便的表达‘menu’和组件的对应关系 。
5.使用枚举
如果我们需要根据用户的不同状态显示Foo、Bar、Default三个组件 , 枚举会比if语句更优雅 。
const Foo = () => {
return <div>foo</div>
const Bar = () => {
return <div>bar</div>
const Default = () => {
return <div>default</div>
const statusMap = {
foo: <Foo />
bar: <Bar />
default: <Default />
const App = () => {
const [status
= useState('default')
return (
statusMap[status
)
6. 使用 JSX 控制语句
JSX 控制语句库扩展了 JSX 的功能 , 让你可以直接使用 JSX 实现条件渲染 。
让我们举个例子 。
export default function App(props) {
const [ hasLogin
= useState(false)
//...
return (
<Choose>
<When condition={ hasLogin >
<button>Logout</button>
</When>
<When condition={ !hasLogin >
<button>Login</button>
</When>
</Choose>
)
总结
以上就是小蓝今天跟大家分享的前端知识 , 如果在学习或者工作中能帮到你 , 可以点下赞 , 关注我们 。
- 12月13日消息|腾讯qqmacos版6.8.9更新:支持全局搜索能力
- 腾讯云智能打法首揭秘!4条快速路让AI“开箱即用”
- 腾讯 QQ macOS 版 6.8.9 更新,支持全局搜索能力
- 腾讯立式刷掌设备专利获授权,可通过刷掌进行身份识别
- 腾讯云|2022年腾讯全球数字生态大会:腾讯云推出搭载第四代AMD EPYC处理器的星星海服务器
- 腾讯|不用带手机 挥挥手就能付钱了!腾讯立式刷掌设备专利获授权
- 腾讯|腾讯会议又崩了!连续两天崩两次
- 抖音|抖音诉腾讯商业诋毁败诉,腾讯:要告媒体,南山法院:支持!
- Twitter|四年试错,腾讯To B取舍了什么?
- 浏览器|广州蓝景分享—HTML+CSS功能,让页面加载速度提高数倍
