Open Geekiter opened 7 months ago
1.项目介绍,亮点
2.路由怎么实现的,react-router cacherouter是干嘛的,hash router和history router的区别
其中Browser或HashRouter包裹应用
import {BrowserRouter as Router, Route, Switch} from "react-router-dom"; function App(){ return ( <Router> <Switch> <Route path="/path" component={Home} /> <Route path="/about" component={About} /> </Switch> </Router> ) }
使用Link
import {Link} from "react-router-dom"; function Navigation(){ return ( <nav> <ul> <li><Link to="/home">Home</Link></li> <li><Link to="/about">About</Link></li> </ul> </nav> ) }
3.useffect怎么实现副作用的,怎么在卸载前取消订阅
import React, {useState, useEffect} from "react"; function ExampleComponent(){ const [data, setData] = useState(null); useEffect(()=>{ const fetchDate = async () => { const result = await fetch("http://api.com"); const jsonData = await result.json(); setData(jsonData); } return ()={ //返回的清理函数在组件卸载时执行,用于取消订阅或执行其他清理操作。 }; }, []); return ( <div> {data && <p>{data}</p>} </div> ) }
4.script阻塞怎么解决,具体讲讲defer和async的区别
脚本阻塞是指浏览器在解析HTML文档时遇到scirpt标签时会停止渲染并下载执行脚本。
使用defer和async来控制脚本的加载和执行
defer告诉浏览器立即下载脚本,但是等文档解析完了再执行。使用defer会在DOMContentLoaded事件之前执行,但是在DOMContentLoaded事件之前执行,浏览器仍然可以并行下载其他资源
async要求浏览器下载完脚本立即执行。不会等文档解析完成。多个带有async属性的脚本会并行下载,下载完成后立即执行,不会按照出行顺序去执行。
区别:
5.react为什么需要hooks
为了解决组件之间的复用状态逻辑,解决了复用性差、代码冗长、难以理解的生命周期的问题。
并带来以下优势:
Hooks列表:
6.react class组件和函数组件的区别
7.react fiber是干嘛的
react fiber是react 16引入的一种重新实现的调度算法,用于实现更加高效的组件渲染和更新。目标是实现更好的时间分片和异步渲染,提高性能和用户体验。 主要作用包括:
8.react redux是怎么更新ui的,除了react-redux其他store有了解吗?
React Redux中,但应用状态发生变化,会通过store来更新UI。通过store.dispaptch(action)派发一个action,这个action会被传递给reducer,然后reducer根据action的类型来更新相应状态。
还有mobx、zustand、recoil
9.antd config.privider
ant design中config.provider是一个用于配置全局样式主题的属性。通过设置config.provider,可以定义Ant Design组件中的各种样式变量。从而自定义整个应用程序的主题风格。通常config.provide
10.实现水平垂直居中的方案
11.less如何实现第1-8个元素不同的颜色
.container{ .centered { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); @color: #fff, #fff, #fff, #ff1, #ff2, #ff2 .loop-colors(@index) when (@index > 0){ &:nth-child(@{index}){ background-color: extract(@colors, @index); } .loop-colors(@index - 1); } .loop-colors(8); } }
12.this了解多少,箭头函数的this为什么在定义时就已经确定
this在调用时确定的,不是在定义的时候确定的。
13.js事件循环
14.h5多线程,多线程有什么限制
HTML5没有直接的多线程能力,但是通过web workers技术,可以在浏览器中创建多线程。
限制
15.babel怎么实现向后兼容的
16.git多人开发时,临时存储方案
git stash git stash apply
17.ts泛型是什么?什么时候用到
是一种在定义函数、类、接口时刻从夫组件的工具。允许定义是不指定具体的类型,而是使用时再指定类型,从而使得这个可重复的组件能够使用与多种不同类型的数据。
1、函数泛型:
function identity<T>(arg: T): T{ return arg; } let result = identity<string>("Hello");
2、类泛型:可以定义类,其中有些属性或者方法的类型的泛型
class Box<T> { private value: T; constructor(value: T){ this.value = value; } getValue(): T { return this.value; } } let box = new Box<number>(10);
3、接口泛型:可以定义接口,其中某些成员是泛型
interface Pair<T, U> { first: T; second: U; } let pair: Pair<number, string> = {first: 1, second: "two"};
let array: Array<number> = [1, 2, 3];
数字马力 前端一面 时间50分钟
1.项目介绍,亮点
2.路由怎么实现的,react-router cacherouter是干嘛的,hash router和history router的区别
其中Browser或HashRouter包裹应用
使用Link
3.useffect怎么实现副作用的,怎么在卸载前取消订阅
4.script阻塞怎么解决,具体讲讲defer和async的区别
脚本阻塞是指浏览器在解析HTML文档时遇到scirpt标签时会停止渲染并下载执行脚本。
使用defer和async来控制脚本的加载和执行
defer告诉浏览器立即下载脚本,但是等文档解析完了再执行。使用defer会在DOMContentLoaded事件之前执行,但是在DOMContentLoaded事件之前执行,浏览器仍然可以并行下载其他资源
async要求浏览器下载完脚本立即执行。不会等文档解析完成。多个带有async属性的脚本会并行下载,下载完成后立即执行,不会按照出行顺序去执行。
区别:
5.react为什么需要hooks
为了解决组件之间的复用状态逻辑,解决了复用性差、代码冗长、难以理解的生命周期的问题。
并带来以下优势:
Hooks列表:
6.react class组件和函数组件的区别
7.react fiber是干嘛的
react fiber是react 16引入的一种重新实现的调度算法,用于实现更加高效的组件渲染和更新。目标是实现更好的时间分片和异步渲染,提高性能和用户体验。 主要作用包括:
8.react redux是怎么更新ui的,除了react-redux其他store有了解吗?
React Redux中,但应用状态发生变化,会通过store来更新UI。通过store.dispaptch(action)派发一个action,这个action会被传递给reducer,然后reducer根据action的类型来更新相应状态。
还有mobx、zustand、recoil
9.antd config.privider
ant design中config.provider是一个用于配置全局样式主题的属性。通过设置config.provider,可以定义Ant Design组件中的各种样式变量。从而自定义整个应用程序的主题风格。通常config.provide
10.实现水平垂直居中的方案
11.less如何实现第1-8个元素不同的颜色
12.this了解多少,箭头函数的this为什么在定义时就已经确定
this在调用时确定的,不是在定义的时候确定的。
13.js事件循环
14.h5多线程,多线程有什么限制
HTML5没有直接的多线程能力,但是通过web workers技术,可以在浏览器中创建多线程。
限制
15.babel怎么实现向后兼容的
16.git多人开发时,临时存储方案
17.ts泛型是什么?什么时候用到
是一种在定义函数、类、接口时刻从夫组件的工具。允许定义是不指定具体的类型,而是使用时再指定类型,从而使得这个可重复的组件能够使用与多种不同类型的数据。
1、函数泛型:
2、类泛型:可以定义类,其中有些属性或者方法的类型的泛型
3、接口泛型:可以定义接口,其中某些成员是泛型