百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

惬意!午间一道 React 题,轻松拿捏前端面试小技巧

ccwgpt 2025-05-16 12:15 21 浏览 0 评论

忙碌了一上午,眼睛酸涩、脑子发懵?别急着刷短视频 “放空”,不如花几分钟和我一起 “品尝” 一道 React 面试题小甜点!就像在阳光洒满窗台的午后,泡一杯热茶,惬意又能悄悄涨知识,何乐而不为?最近,不少前端小伙伴都在为一个高频面试问题发愁:“React 中 props 和 state 到底怎么区分使用?” 这就像搞不清咖啡和奶茶该什么时候喝,别慌,咱们慢慢唠!

一、props:外界传递的 “礼物包裹”

props 全称 “properties”,它就像是别人送给你的包裹,只能接收,不能私自拆开修改。在 React 里,父组件通过 props 把数据传递给子组件,子组件拿到后只能查看、使用,不能直接改变它。比如我们做一个展示用户信息的子组件:

// 子组件UserInfo,接收props中的user数据
function UserInfo(props) {
return (
<div>
<p>用户名:{props.user.name}</p> {/* 展示props中的用户名 */}
<p>用户年龄:{props.user.age}</p> {/* 展示props中的用户年龄 */}
</div>
);
}
// 父组件中使用UserInfo子组件,并传递user数据
function ParentComponent() {
const user = {
name: "小明",
age: 25
};
return (
<div>
<UserInfo user={user} /> {/* 将user对象作为props传递给子组件 */}
</div>
);
}

props 最大的作用就是实现组件之间的数据传递,让子组件能根据不同的 “礼物包裹” 展示不同内容,就像不同口味的奶茶,带给你不一样的体验。

二、state:组件内部的 “小秘密”

state 就像是你藏在抽屉里的小秘密,只有自己能打开、修改。每个组件都可以有自己的 state,它用于存储组件自身会变化的数据,比如一个计数器的数值、一个开关的开闭状态。而且,当 state 发生变化时,组件会自动重新渲染,更新页面展示。看个简单的计数器例子:

import React, { useState } from'react';
function Counter() {
// 使用useState钩子创建count状态,初始值为0
const [count, setCount] = useState(0);
return (
<div>
<p>当前计数:{count}</p> {/* 展示count状态的值 */}
<button onClick={() => setCount(count + 1)}>增加计数</button> {/* 点击按钮时,通过setCount更新count状态 */}
</div>
);
}

这里的count就是组件Counter的 state,它可以随时被修改,每次修改都会触发组件重新渲染,页面上的计数数字就会跟着变化。

三、什么时候用 props,什么时候用 state?

记住一个小口诀:“数据从外部来,就用 props;数据自己变,就用 state”。如果数据是由父组件或者其他地方传递过来,子组件只需要展示,不做修改,那就用 props;要是数据在组件内部产生、变化,影响组件自身的展示逻辑,那就用 state。

面试回答范本

当面试官问 “React 中 props 和 state 到底怎么区分使用?”,你可以这样回答:

“props 主要用于组件间的数据传递,就像传递包裹一样,子组件接收后只能使用,不能修改;而 state 是组件内部私有的数据,用来存储会变化的内容,比如计数器的值。当数据从外部传入,组件只负责展示时用 props;当数据在组件内部产生变化,影响组件自身渲染时就用 state。”

午休这短短几分钟,是不是感觉既放松又收获满满?要是觉得今天的小知识对你有帮助,动动手指点个赞,关注我,每天中午带你解锁更多有趣的 React 面试题!明天咱们继续相约,不见不散~

相关推荐

谷歌正在为Play商店进行Material Design改造

谷歌最近一直忙于在其应用程序中完成MaterialDesign风格的改造,而Play商店似乎是接下来的一个。9to5Google网站报道,有用户在Play商店的最新版本中发现了新界面,暗示该应用和网...

企业网站免费搭建,定制化建站CMS系统

科腾软件企业网站CMS管理系统已完成开发工作,首次开源(全部源码)发布。开发工具:VisualStudioEnterprise2022数据库:SQLite(零配置,跨平台,嵌入式)开发...

您需要的 11 个免费 Chrome 扩展程序

来源:SEO_SEM营销顾问大师Chrome扩展程序是SEO的无名英雄,他们在幕后默默工作,使您的策略脱颖而出并提高您的努力效率。从竞争对手研究到审核您的网站,速度比您说“元描述”还快,这些小工具发...

户外便携设备抗干扰困境如何破局?CMS-160925-078S-67给出答案

  在户外复杂的电磁环境中,便携式设备中的扬声器需具备出色抗干扰能力,CUID的CMS-160925-078S-67在这方面表现突出。  从其结构设计来看,矩形框架虽主要为适配紧凑空...

一个基于NetCore开发的前后端分离CMS系统

今天给大家推荐一个开源的前后端分离架构的CMS建站系统。项目简介这是一个基于.Net3构建的简单、跨平台、模块化建站系统。系统业务简单、代码清晰、层级分明、全新架构便于二次扩展开发。支持多种数据库,...

本地Docker部署ZFile网盘打造个人云存储

前言本文主要介绍如何在LinuxUbuntu系统使用Docker本地部署ZFile文件管理系统,并结合cpolar内网穿透工具实现远程访问本地服务器上的ZFile传输与备份文件,轻松搭建个人网盘,无...

pcfcms企业建站系统 免费+开源的企业内容管理系统

项目介绍pcfcms是基于TP6.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设、网络营销成本,致力于打造用户舒适的建站体验。演示站...

【推荐】一个高颜值且功能强大的 Vue3 后台管理系统框架

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍SnowAdmin是一款基于Vue3、TypeScript、Vite5、Pinia、Arco-Desi...

java开源cms管理系统框架PublicCMS后台管理系统

一款使用Java语言开发的CMS,提供文章发布,图片展示,文件下载,用户权限、站点模块,内容管理、分类等功能。可免费用于商业用途maven工程数据库脚本在工程中database文件夹下代码结构:效果...

一定要大量读书:当我问Deepseek,它给出的高效阅读方法厉害了!

一年一度的世界读书日,总该写点什么。于是,我去问Deepseek给我推荐人生破局必读的10本书,结果它给了我回复,竟然10本推荐的书籍里,我都曾经浏览过,同时还给出破局关键。而说浏览过,不是读过,是因...

《搜神札记》:不应磨灭的惊奇(小说《搜神记》)

□黄勃志怪传说的书写一直是文人墨客的后花园,晚近尤盛,从张岱到袁枚到纪昀,收集那些或阴森或吊诡的行状故事,遂成一类,到民国年间,周作人挟此遗传,捋袖子拿希腊神话动刀,乃兄鲁迅不甘其后,《故事新编》虎...

《如何构建金字塔》之第三章总结(构建金字塔结构的方法有)

“没有什么比一套好理论更有用了。”——库尔特.勒温这篇读后感依然引用了这句库尔特.勒温名言,这句话也是我读芭芭拉.明托这本书的初衷。今天就“如何构建金字塔”,我来谈谈我的读后心得。我热爱写作,但是写...

《助人技术》第一章助人引论内容框架

第一章内容基本呈现如何成为助人者(心理咨询师)以及一些相关基础知识,对于进入这个行业有兴趣以及希望通过心理咨询寻求帮助但存有疑虑的当事人,都值得一读。心理咨询的三个阶段(不是说严格的三个阶段,而是广义...

AI助手重构读后感写作流程:从提纲到完整性思考的转换

大家好!你有没有遇到过读完一本书,想要写读后感,却不知道从何下手的情况呢?今天我们要来探讨一下如何利用稿见AI助手来重构读后感写作流程,从提纲到完整性思考的转换。让我们一起来看看这个全新而又实用的方法...

图解用思维导图做读书笔记技巧(图解用思维导图做读书笔记技巧视频)

做阅读笔记非常有利于读后进行有效的深入思考,而思维导图这一强大的工具其最大的特点就是架构清晰,在阅读过程中对文章的分析、总结、分类起着很大的辅助作用。思维导图读书笔记步骤:1、阅读大纲。首先要快速浏览...

取消回复欢迎 发表评论: