首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端一面必会react面试题(持续更新中)

使用步骤如下:(1)首先要安装redux-persist:npm i redux-persist(2)对于reducer和action处理不变,只需修改store生成代码,修改如下:import...)注册监听器;通过 subscribe(listener)返回函数注销监听器hooks 常用useEffct使用:如果不参数:相当于render之后就会执行参数为空数组:相当于componentDidMount...Hook 设计约定,而并不是 React 特性在我看来,自定义hook就是把一块业务逻辑单独拿出去写。...相反Vue.js使用HTML模板创建视图组件,这时模板无法有效编译,因此Vue不采用HOC来实现。...React 并不强制要求使用 JSX。当不想在构建环境中配置有关 JSX 编译时,不在 React使用 JSX 会更加方便。

1.6K20

react面试题整理2(附答案)

,其中defaultProps是使用getDefaultProps方法来获取默认组件属性React.Component在创建组件时配置这两个对应信息时,他们是作为组件类属性,不是组件实例属性,也就是所谓静态属性来配置...;hooks 常用useEffct使用:如果不参数:相当于render之后就会执行参数为空数组:相当于componentDidMount如果数组:相当于componentDidUpdate如果里面返回...DOM 获取需要在 pre-commit 阶段和 commit 阶段: hooks父子值父传子在父组件中用useState声明数据 const [ data, setData ] = useState...缺点:无法在 return 语句外访问数据、嵌套写法不够优雅(3)Hooks 官方解释∶HookReact 16.8 新增特性。...需要注意是:hook只能在组件顶层使用,不可在分支语句中使用

4.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

一道React面试题把我整懵了

针对一些复杂组件(要绑定方法过多),我们需要多次重复去写这些方法名;无法单独处理参问题(这一点尤其重要,也限制了它使用场景)。...hooks父子值父传子在父组件中用useState声明数据 const [ data, setData ] = useState(false)把数据传递给子组件<Child data={data} /...Hooks在平时开发中需要注意问题和原因(1)不要在循环,条件或嵌套函数中调用Hook,必须始终在 React函数顶层使用Hook这是因为React需要利用调用顺序来正确更新相应状态,以及调用相应钩子函数...(2)使用useState时候,使用push,pop,splice等直接更改数组对象使用push直接更改数组无法获取到新值,应该采用析构方式,但是在class里面不会有这个问题。...指出(组件)生命周期方法不同componentWillMount -- 多用于根组件中应用程序配置componentDidMount -- 在这可以完成所有没有 DOM 就不能做所有配置,并开始获取所有你需要数据

1.1K40

前端常见react面试题合集_2023-03-15

缺点:无法在 return 语句外访问数据、嵌套写法不够优雅(3)Hooks 官方解释∶HookReact 16.8 新增特性。...需要注意是:hook只能在组件顶层使用,不可在分支语句中使用。...Hooks在平时开发中需要注意问题和原因(1)不要在循环,条件或嵌套函数中调用Hook,必须始终在 React函数顶层使用Hook这是因为React需要利用调用顺序来正确更新相应状态,以及调用相应钩子函数...(1)在map等方法回调函数中,要绑定作用域this(通过bind方法)。(2)父组件传递给子组件方法作用域是父组件实例化对象,无法改变。...React Router 4.0版本中对 hashHistory做了迁移,执行包安装命令 npm install react-router-dom后,按照如下代码进行使用即可。

2.5K30

前端react面试题(必备)2

这个阶段可能会被 React 暂停,这一点和 React16 引入 Fiber 架构(我们后面会重点讲解)是有关Pre-commit阶段:所谓“commit”,这里指的是“更新真正 DOM 节点...通过这样做, React 将会知道发生的确切变化,并且通过了解发生什么变化,只需在绝对必要情况下进行更新即可最小化 UI 占用空间hooks 常用useEffct使用:如果不参数:相当于render...之后就会执行参数为空数组:相当于componentDidMount如果数组:相当于componentDidUpdate如果里面返回:相当于componentWillUnmount会在组件卸载时候执行清除操作...Hook 设计约定,而并不是 React 特性在我看来,自定义hook就是把一块业务逻辑单独拿出去写。...action偶合在⼀起,不⽅便管理功能孱弱: 有⼀些实际开发中常⽤功能需要⾃⼰进⾏封装使用步骤:配置中间件,在store创建中配置import {createStore, applyMiddleware

2.3K20

Vite + React + Typescript 构建实战

,则说明安装失败,需要重新安装试试 这里 husky 使用 4.x 版本,5.x 版本已经不是免费协议了 测试发现 node/14.15.1 版本会导致 husky 自动创建 .git/hooks/pre-commit...2、.eslintrc:ESLint 编码规则配置,这里推荐使用业界统一标准,这里我推荐 AlloyTeam eslint-config-alloy,按照文档安装对应 ESLint 配置npm...visualizer({        open: true,        gzipSize: true,        brotliSize: true      })    ]  }  // 在这里无法使用...,类似 issue 可以参考 解决方案 手动安装单独安装 indexof npm 包:npm install indexof mobx6.x + react + typescript 实践 作者在使用...因为函数组件没法使用注解方式,所以咱们需要使用自定义 Hook 方式来实现: // useStore 实现import { MobXProviderContext } from 'mobx-react'import

1.6K30

React教程(详细版)

i -g create-react-app 2、创建引用:create-react-app my-app 3、运行应用:cd my-app(进入应用文件夹),npm start(启动应用) 7.1 React...配置繁琐,前端请求资源时必须加前缀 八、 消息订阅-发布机制 背景: 原先react传递数据基本用是props,而且只能父组件传给子组件,如果子组件要数据给父组件,只能先父组件一个函数给子组件...npm run start 来运行启动项目并打开页面,打包生成静态文件就要用到另一个命令(npm run build),它会生成一个build文件夹,一般这个生成静态文件都是放到服务器上去运行,那么问题来了...1、HookReact 16.8新推出新特性/新语法 2、可以让你在函数式组件中使用state或其他特性 13.2、三个常用Hook 1、React.useState() 2、React.useEffect...,要把父组件中state值传递给孙子组件,那么在父组件全局位置创建一个容器对象,然后用这个容器对象Provider标签包裹父组件,同时value={state数据},注意,这里value字段名不能改

1.7K20

一天一夜,山月写完了这份高效组织 npm script 最佳实践

约定速成亲儿子脚本自然和其它第三方脚本不一样,如果需要执行它,直接使用 npm 前缀即可,如 npm start,那其它脚本呢?那就需要 npm run 前缀了。...使用 create-react-app 生成项目,它 npm script 中只有 npm start { "start": "react-scripts start", "build":...start: 在生产环境启动项目 在 nest 项目中进行配置 { "start": "nest start", "dev": "nest start --watch" } 运行:Script...但是有些项目有可能不需要打包,此时可以使用 if-present 参数,代表如果存在该 script,则执行,否则跳过 $ npm run --if-present build { "scripts...开发基础组件库时,可以配置 npm run storybook 进行更好测试 $ npm run storybook { "scripts": { "storybook": "start-storybook

2K20

可能是目前最详细从零开始配置 TypeScript 项目的教程

工程化配置领域设计可以有哪些设计阶段(例如 react-scripts 和 vue ui 在设计以及使用形态上区别)? 工程化配置监控(使用版本信息、版本兼容性报错信息分析、使用功能分析等)?...ESLint 中 --fix(在 ESLint 中使用参数还是需要谨慎哈,建议还是使用 VS Code Save Auto Fix 功能),主要用于自动修复格式错误。...Prettier 格式化,这个配置将在 Lint Staged 中讲解,更多配置方案也可以查看 Prettier - Pre-commit Hook[82]。...当然你也可以通过配置命令行参数 git commit --no-verify 绕过钩子运行。...之前提到使用 Git Hook 可以进行 ESLint 规范约束,因此大家其实应该能够猜到使用 pre-commit 钩子(当然需要借助 Git Hook 增强工具,本项目中一律选择 husky)配合

4.7K22

React Hooks 学习笔记 | State Hook(一)

二、环境准备 为了快速上手,小编还是建议使用官方脚手架 Create React App ,安装命令如下: npm i -g create-react-app 全局完成安装后,你就可以开始创建 React...应用了 npx create-react-app myapp 创建完成后,在项目目录下运行命令,启动你 React 项目 cd myapp npm start 三、类组件中 State 状态管理...由于 useState Hook 输出局部变量,因此您不再需要使用 this 关键字来引用您函数或状态变量。...,通过子组件向父组件形式,将当前用户操作更改状态值传递给父组件 Ingredients,说了这么多,还是看看代码吧,示例代码如下: import React, {useState} from'react...,在当前项目目录下运行 npm start,如果一切正常你就会看到如下视频所示效果。

1.5K30

让你 React 组件水平暴增 5 个技巧

进入项目目录,把开发服务跑起来: npm run start 然后引入 antd: npm install --save antd 在 App.tsx 里引入几个 antd 组件: 页面上可以看到这俩组件都成功渲染了...然后把 style、className,额外 props 都设置给最外层 div。 这样,使用这个组件时候,就可以自己定义一些样式,设置一些 props。...这时候就需要 useImperativeHandle hook 了。 这样写: import '....效果是这样React.cloneElement 第二个参数是修改 props,后面的参数是 children: 结合 React.Children api 和 React.cloneElement...用 Context Provider + useContext 来跨组件传递值,可以用来传递全局配置,也可以用来做业务组件跨层传递数据 通过 React.Children + React.cloneElement

50610

如何开发一个完整 Vite 插件?

) { // 钩子逻辑 },}如果插件是一个 npm 包,在package.json中包命名也推荐以vite-plugin开头一般情况下因为要考虑到外部参,我们不会直接写一个对象,而是实现一个返回插件对象工厂函数...options 参 } }}// 使用方式// vite.config.tsimport { myVitePlugin } from '..../myVitePlugin';export default { plugins: [myVitePlugin({ /* 给插件参 */ })]}插件 Hook 介绍1....', config: () => ({ alias: { react: require.resolve('react') } })})官方推荐姿势是在 config 钩子中返回一个配置对象...接下来让我们通过一些具体例子来实操一下,首先通过脚手架命令初始化一个react + ts项目:npm init vite然后通过pnpm i安装依赖,接着新建plugins目录,开始插件开发://

77440

前端反卷计划-组件库-01-环境搭建

环境搭建组件库名字因为我们组件库要发布到npm上面,所以你组件库名称不能和其他npm名称重复。...q=curry-design图片从结果可以看到,这个名字没有其他包在用,所以我可以使用这个名字作为组件库包名。如果你起名字,在npm里面查询到,则需要换个名字。...], // 使用TypeScript规则检查未使用变量 'react/prop-types': 'off', // 关闭prop-types检查,如果你不使用prop-types '...,在根目录创建.prettierrc.js,在这个文件进行配置module.exports = { // 箭头函数只有一个参数时候可以忽略括号 arrowParens: 'avoid', //...run preparenpx husky add .husky/pre-commit "npm run lint"npx husky add .husky/pre-commit "npm run format"npx

24430

React Native 导航:示例教程

用这个启动应用程序: npx expo start 接下来,使用以下任一命令在 React Native 项目中安装 React Navigation 库: /* npm */ npm install...这就导致了颜色变化 4.使用 useNavigation() 钩子 React Navigation 还提供了一个名为 useNavigation Hook。...这个 Hook 使函数组件能够访问导航对象,并允许它们以编程方式触发导航操作。当你无法直接将导航属性传递给组件时,它非常有用。...老实说,我更经常使用 Hook,因为它更容易在我功能组件中进行管理,而且使用起来也非常方便。...首先,将参数作为 navigation.navigate 函数第二个参数放入一个对象中,从而将参数递给路由: 然后,读取屏幕组件中参数

29410

react核心api

简介 官方脚手架: sudo npm i create-react-app -g 没有任何可配置选项。和vue提示一大堆配置相比,react干净简洁得令人窒息。...实际上创建 create-react-app 你项目名 cd进去,npm start即可。...(createElement函数返回对象) jsx插值表达式 通过 {xxx}你可以随意值 也可以方法。或是计算结果. 属性(props) 你可以通过属性来给子组件传递你允许任何允许表达式。...父子组件参:一般只能用props来做。 只读 引入静态资源(css和图片) import logo from './logo.svg'; import '....状态修改可能是异步(注意可能) 处理方式: 参数pre)+回调函数 给setState设置setTimout设置0s后执行 原生事件得到值,可以立刻拿到同步值。

66620

hooks理解

useState 使用 useState用法很简单,返回一个数组,数组值为当前state和更新state函数; useState参数是变量、对象或者是函数,变量或者对象会作为state初始值,...实际上如果修改state是同一个,最后一个setCount函数中新state会覆盖前面的 useEffect&&useLayoutEffect 相同点 这两个hook用法都一致,都是处理副作用hook...数组内容是依赖项deps,依赖项改变后执行回调函数;注意组件每次渲染会默认执行一次,如果不第二个参数,则只要该组件有state(状态)改变就会触发回调函数;如果一个空数组,则只会在初始化时执行一次...返回callback可以作为props回调函数传递给子组件。 缓存函数,当页面重新渲染render时,依赖项不变时,不会去重新生成这个函数。...子组件使用React.memo包裹,父组件需要传递至子组件函数使用useCallback缓存,来避免子组件不必要重新render。当传给子组件函数时。

1K10
领券