当前位置: 首页 > news >正文

react面试题

重要知识点: Vue.js / React 项目中图片放置路径?

方法1:public目录下,不会被Webpack处理,而是直接发布到最终的Web服务器根目录下,客户端可以通过地址直接访问到该图片! —— 项目中的“动态图片”(例如头像、评论照片、商品图)只能放在public目录下

方法2:src目录下,默认不会被Webpack处理——除非被其它模块文件导入,就会被打包编译到最终发布的成品中;否则最终的成品中就不会出现该图片!—— 项目中的“静态图片”(例如logo、精灵图)可以放到src目录下,在Webpack打包时就可以导入了

面试题:React中的“受控组件”和“非受控组件”

  提示:React中没有指令的概念,也就没有v-model双向数据绑定绑定指令;

     React中压根没有“双向数据绑定”的概念 —— 使用两个“单向数据绑定”模拟实现了。

  方向1:Model => View,状态变量的值绑定到输入元素的value属性:

<input value={age}/>

  方向2:View => Model,输入元素最新的输入可以反向影响状态变量:

<input onChange={e=>setAge(e.target.value)}/>

  React要求输入元素的“数据源只能是单一的”:要么是用户的输入,要么是绑定的状态变量 —— 所以如果给输入元素绑定了 value={状态变量} ,那么不能再直接输入数据了 —— 此时的输入元素称为“受控组件”;此时必需提供onChange事件,才能真正获得用户输入。

  “受控组件”可以监视“用户的每一次输入”,对输入的每个按键都进行检验;有些情况下无需要如此紧盯的检验,有时只需要在“点击提交按钮”时进行一次简单的校验即可,这种情况下可以使用“非受控组件”:

受控组件

非受控组件

语法

let [age, setAge] = useState(0)

<input value={age}

  onChange={e=>setAge(e.target.value)}/>

let ageInput = useRef( )

<input  defaultValue=""

  ref={ageInput}/>

clg(ageInput.current.value)

应用场合

校验用户的每次输入

不需要监控每次输入,只需要最后读取一次

相关文章:

  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之六 简单进行人脸训练与识别
  • 刷代码随想录有感(46):平衡二叉树
  • MySQL 开源到商业(二):开源骇客沦为大厂社畜
  • 数据库MySQL的初级基础操作
  • 安卓Activity的setContentView()流程分析
  • 网工学习云计算HCIE感受如何?
  • 逆向案例二:关键字密文解密,自定义的加密解密。基于企名片科技的爬取。
  • idea生成WebServices接口
  • Android Studio六大基本布局详解
  • 【GPTs分享】GPTs分享之Write For Me
  • 100天精通Python(实用脚本篇)——第117天:基于selenium实现反反爬策略之代码输入账号信息登录网站
  • 人工智能大学课程-ChatGPT生成
  • STM32F103移植FreeRTOS必须搞明白的系列知识---3(堆栈)
  • 人脑能否重启?
  • 【微信小程序】创建自己的小程序
  • Jmeter基于Java请求的二次开发(结合java代码测Dubbo接口)
  • Redis哨兵模式与Redis缓存穿透、击穿和雪崩
  • python——全局解释器锁(GIL)
  • 武汉市服务业领军企业认定条件、流程及申报政策奖励补贴标准
  • 我的第一篇技术博客 —— 梦的开始
  • 变分自编码器VAE的直观理解与原理推导 及 问题记录
  • 【python】准点跑路人必备小程序~ 不信你用不到
  • 10个常见的使用场景,助你从 Vue2 丝滑过渡到 Vue3 !
  • Java线程安全的时间类
  • 驱动开发:内核枚举IoTimer定时器
  • sumo的简单使用
  • 【C++】C++入门
  • Docker精通:微服务
  • HCIA-LTE学习总结03~04
  • Python Apex Legends 武器自动识别与压枪 全过程记录
  • 『Android』Toolbar+DrawerLayout+NavigationView实现类似QQ侧边栏效果
  • 10.13面试整理