2022 React 面试题(50道)

2023-11-19

什么是同源?

如果两个页面(接口)的协议、域名、端口号都相同,我们认为他们具6511有相同的源

UmiJs和dva、roadhog是什么关系?

roadhog 是基于 webpack 的封装工具,目的是简化 webpack 的配置 umi 可以简单地理解为 roadhog + 路由,思路类似 next.js/nuxt.js,辅以一套插件机制,目的是通过框架的方式简化 React 开发 dva 目前是最纯粹的数据流,和 umi 和 roadhog 之间并没有相互的依赖关系,可以分开使用也可以一起使用。

redux异步请求用redux-thunk中间件

重绘和重排的区别:

  • 重绘:CSS 样式改变(例如:visibility,背景色的改变),使浏览器需要根据新的属性进行绘制。
  • 重排:我们对DOM的修改引发了DOM几何元素的变化,渲染树需要重新计算,重新生成布局,重新排列元素。

如果两个页面(接口)的协议、域名、端口号都相同,我们认为他们具有相同的源

UmiJs和dva、roadhog是什么关系?

roadhog 是基于 webpack 的封装工具,目的是简化 webpack 的配置 umi 可以简单地理解为 roadhog + 路由,思路类似 next.js/nuxt.js,辅以一套插件机制,目的是通过框架的方式简化 React 开发 dva 目前是最纯粹的数据流,和 umi 和 roadhog 之间并没有相互的依赖关系,可以分开使用也可以一起使用。

eventLoop(普通函数->宏任务->微任务)

队列 是一种 FIFO(First In, First Out) 的数据结构,它的特点就是 先进先出

是一种 LIFO(Last In, First Out)的数据结构,特点即 后进先出

宏任务一般是:包括整体代码script,setTimeout,setInterval、I/O、UI render。 微任务主要是:Promise、Object.observe、MutationObserver。

JavaScript数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

react diff 原理(常考,大厂必考)

  • 把树形结构按照层级分解,只比较同级元素。
  • 给列表结构的每个单元添加唯一的 key 属性,方便比较。
  • React 只会匹配相同 class 的 component(这里面的 class 指的是组件的名字)
  • 合并操作,调用 component 的 setState 方法的时候, React 将其标记为 dirty.到每一个事件循环结束, React 检查所有标记 dirty 的 component 重新绘制.
  • 选择性子树渲染。开发人员可以重写 shouldComponentUpdate 提高 diff 的性能。

性能优化

1,减少http请求

2,将CSS文件放在头部,js文件放在底部

3,使用字体图标代替图片

4,压缩文件

5,图片懒加载

跨域问题

1,CORS:只要服务器端支持就行

2,Nginx代理跨域:配置一个代理服务器

3,Node中间件代理跨域

4,Websocket

5,JSONP:添加一个

输入URL之后发生了什么

1,浏览器通过DNS查找域名的IIP地址

2,浏览器与目标服务器简历TCP链接(三次握手)

3,浏览器通过http协议发送请求

4,服务器响应http请求

5,释放TCP链接

6,浏览器解析html代码

7,浏览器发送请求获取HTML中的资源

8,浏览器对页面进行渲染呈现给用户

如何使用react脚手架搭建一个项目

  • npx create-react-app app-name

调用 setState 之后发生了什么?

React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程,React 会以相对高效的方式根据新的状态构建 React 元素树并且着手重新渲染整个 UI 界面,在 React 得到元素树之后,React 会自动计算出新的树与老树的节点差异,然后根据差异对界面进行最小化重渲染。

react中的组件传参

  • 父传子

#父传子将父组件中的属性传入子组件,子组件可以用props直接接收并使用。 复制代码

  • 子传父

#子传父是子组件调用父组件中传来的方法来改变父组件中的值。 复制代码

  • 非相关组件传参

#使用context上下文,通过使用context.Provider数据提供者来实现全局的数据共享。 复制代码

在react中class定义的组件生命周期钩子函数?

可以大致分为初始化阶段、运行中阶段和销毁阶段

初始化阶段


  • constructor( )
  • //设置组件的初始化状态
  • componentWillMount( )
  • //组件在挂载之前触发,这时可以开启定时器或者向服务器发送请求
  • render( )
  • //组件的渲染
  • componentDidMount( )
  • //组件已经渲染完毕,此时可以执行DOM的相关操作

运行中阶段

  • componentWillReceiveProps( )
  • //组件接收到新的属性时触发
  • shouldComponentUpdate( )
  • //当组件接收到新属性,或者组件的状态发生改变时触发。组件首次渲染时并不会触发

#此处可以对react进行优化处理,决定后续生命周期函数是否需要继续执行 shouldComponentUpdate(newProps, newState) {   if (newProps.number < 5) return true;   return false } //该钩子函数可以接收到两个参数,新的属性和状态,返回true/false来控制组件是否需要更新。 复制代码

  • componentWillUpdate( )
  • //组件更新之前触发
  • componentDidUpdate( )
  • //组件已经更新完毕,此时页面中产生了新的DOM元素,可以进行DOM操作

销毁阶段

  • componentWillUnMuont( )
  • //组件销毁之前触发,此时可以做一些清理操作,例如清除定时器,或者一些事件。

react中class定义的组件和function定义的组件的区别?

  • function定义的组件没有this指向的问题
  • class定义的组件有自己的局部状态(this.state)和自己的生命周期函数,function定义的组件是无状态组件,但是在16.8之后可以用hooks(useEffect)来模拟组件的局部状态和生命周期。
  • 官方建议使用function来定义组件,写法简单,并且便于理解。
  • 我目前一直在使用function来定义组件

react中hooks是如何模拟组件的生命周期的?

componentDidMount

function Example() { useEffect(() => console.log('mounted'), []); return null; } 复制代码

useEffect 拥有两个参数,第一个参数作为回调函数会在浏览器布局和绘制完成后调用,因此它不会阻碍浏览器的渲染进程。 第二个参数是一个数组

  • 当数组存在并有值时,如果数组中的任何值发生更改,则每次渲染后都会触发回调。
  • 当它不存在时,每次渲染后都会触发回调。
  • 当它是一个空列表时,回调只会被触发一次,类似于 componentDidMount。

componentDidUpdate

useEffect(() => console.log('count updated'),[count]); 复制代码

componentWillUnmount

useEffect(() => { return () => {   console.log('will unmount'); } }, []); 复制代码

  • 当在 useEffect 的回调函数中返回一个函数时,这个函数会在组件卸载前被调用。我们可以在这里面清除定时器或事件监听器。

react和vue的区别和共同点?

共同点:

  • 都使用虚拟dom。
  • 都提供了响应式和组件化的视图组件。
  • 都有全局状态管理的库。(vue-router、vuex、react-router、redux等等)

不同点:

  • 在性能方面,当组件的状态发生变化时,React的机制会触发整个组件树的重新渲染(shouldComponentUpdate()),Vue提供了优化的重新渲染,其中系统在渲染过程中跟踪依赖关系并相应地工作。重新渲染Vue是最显着的特征,使其成为全世界开发人员广泛接受的框架。
  • React react非常的灵活,并且它的库是非常丰富的,后盾是facebook,在react中数据是单向流动的,react在setState之后会重新走渲染的流程,如果shouldComponentUpdate返回的是true,就继续渲染,如果返回了false,就不会重新渲染,开发大型应用程序更好。
  • Vue vue性能更棒,占用空间更少,适合开发单页面应用程序,在vue中而Vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom,并且易于学习和上手,文档也比较友好。

react中的高阶组件有没有了解过?

  • 高阶组件就是一个没有副作用的纯函数。
  • 高阶组件是把一个组件当做参数,返回值为新组件的函数。
  • 高阶组件实际上就是高阶函数,如map、forEach
  • 常用的高阶组件:withRouter(路由中的),connect(reac-redux中的)

redux是什么?

  • redux是一个全局状态管理插件,用来操作数据的,它可以结合任何一个js库来使用(vue,安哥拉)等,react是一个针对视图层的library,一般结合react来使用。
  • redux是单向数据流,state用来存储数据,所有的数据改变都在reducer中进行,redux中还有一个action,用来组织数据。
  • 单向数据流:数据是单向流动的,view通过dispatch来派发一个action改变数据,数据改变之后,页面重新渲染。

redux分为三个部分:

  • state用来存储数据
  • reducer用来处理和改变数据,每一个reducer都是一个function,返回一个新的对象作为数据,目的是不进行原始数据的对比,使性能更高。
  • action用来组织数据,传递给reducer来进行数据的改变操作,每一个action都有一个属性叫type。表示数据以什么方式进行改变。

react中的错误边界?

  • React16.X中引入了错误边界(Error Boundaries)概念。
  • 它可以捕获它的子组件中产生的错误,类似于try-catch,只不过是以react组件的形式来实现的。
  • 有了错误边界,即使某个组件的结果有错误,整个React程序挂载也不会被挂掉。只有出错的那个组件会显示一个后备界面,而整个程序仍然完全正常运行。
  • 这里的componentDidCatch()函数使用方法和JavaScript中的catch {}代码块差不多,但只能用于组件。只有类组件才可以成为错误边界。
  • 在componentDidCatch()函数内部我们把hasError状态设置为true。然后在渲染方法中检查那个状态。如果出错状态是真,就渲染后备界面;如果是false就把想渲染的React组件界面当作子组件界面渲染出来。

尽管如此,以下错误Error Boundaries依旧无法捕获:

  • 事件错误
  • Error Boundaries本身的错误
  • 异步代码

react中react-router和react-router-dom的有什么区别?

api方面

  • React-router: 提供了路由的核心api。如Router、Route、Switch等,但没有提供有关dom操作进行路由跳转的api;
  • React-router-dom: 提供了BrowserRouter、Route、Link等api,可以通过dom操作触发事件控制路由。
  • Link组件,会渲染一个a标签;BrowserRouter和HashRouter组件,前者使用pushState和popState事件构建路由,后者使用 hash 和 hashchange 事件构建路由。

使用区别

  • react-router-dom在react-router的基础上扩展了可操作dom的api。 Swtich 和 Route 都是从react-router中导入了相应的组件并重新导出,没做什么特殊处理。
  • react-router-dom中package.json依赖中存在对react-router的依赖,故此,不需要额外安装react-router。

如何使用redux(使用流程)越详细越好?

  • 在脚手架中安装react-redux
  • 使用createStore去创建一个全局的store,用来保存所有的state,createStore接收一个reducer作为参数,你可以使用combineReducers传入多个reducer。
  • 在reducer中,接收两个参数,第一个参数表示数据的初始状态,第二个参数表示action,并且reducer会返回一个新的对象作为数据,这样的话可以不进行原始对象的比较,性能会提高。
  • 想要改变数据的话,就是view通过dispatch去派发一个action去执行相应的reducer,并且在store中进行更新,store改变的话,view就会重新渲染。
  • 我们可能要使用react-redux中的connect和Provider方法 去关联我们的数据。Provider通过context上下文向子组件提供store,connect把redux中的数据和组件中的props做关联,这里用到的方法是mapStateToProps把store中的数据去映射到组件的props中,这样在组件中就可以通过props去访问到redux中的数据。
  • 如果需要发送异步请求的话,还需要react-thunk插件,需要在creaceStore中做一个配置。

react中的key值有什么作用?

  • key属性的使用,则涉及到diff算法中同级节点的对比策略,当我们指定key值时,key值会作为当前组件的id,diff算法会根据这个id来进行匹配。如果遍历新的dom结构时,发现组件的id在旧的dom结构中存在,那么react会认为当前组件只是位置发生了变化,因此不会将旧的组件销毁重新创建,只会改变当前组件的位置,然后再检查组件的属性有没有发生变化,然后选择保留或修改当前组件的属性。
  • 用key是为了区分在前后两次渲染中元素的对应关系,防止发生不必要的更新操作。如果我们用index来标识key,数组在执行插入、排序等操作之后,原先的index并不再对应到原先的值,那么这个key就失去了本身的意义,并且会带来一些其他的问题。

react hooks解决什么问题?

  • react hooks 解决了函数定义的组件没有生命周期和局部状态的问题,使用hooks可以模拟类定义组件的生命周期。

两种路由模式的区别?hash和history?

  • hash路由 hash模式是通过改变锚点(#)来更新页面URL,并不会触发页面重新加载,我们可以通过window.onhashchange监听到hash的改变,从而处理路由hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
  • history路由 history模式是通过调用window.history对象上go、back、forward去操作浏览器的历史记录栈来实现页面的无刷新跳转。

解释useEffect的第二个参数传不同值的区别;

useEffect 拥有两个参数,第一个参数作为回调函数会在浏览器布局和绘制完成后调用,因此它不会阻碍浏览器的渲染进程。第二个参数是一个数组:

  • 当数组存在并有值时,如果数组中的任何值发生更改,则每次渲染后都会触发回调。
  • 当它不存在时,每次渲染后都会触发回调。
  • 当它是一个空列表时,回调只会被触发一次,类似于componentDidMount。

什么是纯函数?

  • 返回一个新值,并且没有任何副作用。

reducer是纯函数吗?为什么?

  • reducer必须是一个纯函数,Redux只通过比较新旧两个对象的存储位置来比较新旧两个对象是否相同。如果你在reducer内部直接修改旧的state对象的属性值,那么新的state和旧的state将都指向同一个对象。因此Redux认为没有任何改变,返回的state将为旧的state。

你认为vue和react有什么区别?

  • vue是单文件组件,组件内部是使用高度封装的模板(template)语法,数据是双向绑定。
  • react是jsx语法,并且数据是单向流动的。
  • vue是一个完整的框架,react主要是针对视图层的一个library
  • vue和react都是用了虚拟的dom。

可控组件和非可控组件是什么?

  • 主要是表单的value是否受state控制
  • 需要自行监听onChange,更新state

介绍一下hooks?

  • useState 定义局部状态
  • useEffect 模拟生命周期
  • useRefs 使用ref获取dom
  • useContext context上下文
  • useParams 获取url中的params
  • useLocation 获取url中的location对象
  • useMemo 做性能优化
  • useCallback

redux性能优化的最佳实践

  • pureComponent中自带shouldComponentUpdate这个生命周期。
  • 如果是普通component,当组件接收到新的props时,render都会重新渲染,如果是pureComponent,那么当传入新的props时会跟旧的props进行一个浅比较,如果没有变化,那么render函数不会重新渲染。
  • 一般会和immutable.js这个库结合使用,会将性能优化做到极致。

虚拟dom是什么?为什么虚拟dom会提升react的性能?

  • 虚拟dom实际上是一个js对象。
  • 真实dom进行比对的时候,非常复杂,真实dom树上会有方法,有属性,有事件,会非常消耗性能。通过将真实dom对象转化成js中的对象,就不具有真实dom中的特性,单纯比较js对象性能就会比较快。

diff算法是什么?

  • diff算法中如果key值相同就直接复用,不用重复地创建dom了。

webpack中,是借助loader完成JSX的转化?还是babel?

  • 因为react的代码是没办法直接在浏览器中运行的,是借助脚手架将代码转化为ES5,才得以在浏览器中运行,(在vue中是借助webpack中的vue-loader转化)react是借助babel中的preset-react来转化的。

setState是异步的,你在什么时候遇到过坑?

  • setState是异步的,导致在setState之后获取refs会是上一次的值。
  • 放在setState中的第二个回调函数中就可以解决这个问题。

ref的作用是什么,你在什么业务场景下使用过refs?

  • ref用来获取dom元素
  • 比如当一个图片加载完毕的时候,我想获取这个图片的宽和高,就要用到refs,比如放大镜。

redux中间件的原理是什么?

  • 中间件实际是对dispatch的改装
  • 中间件指的是action和store之间对dispatch的改装
  • 派发action的时候,先走中间件,再去store中
  • 从action (中间件)-> store -> reducer -> store

你会把数据统一放到redux中管理,还是把共享数据放在redux中管理?

  • 所有的数据都应该放在redux中去管理。
  • 当一个组件中既有state又有props和redux存储来存储数据。一个组件二三百行,查错不知道去哪儿查,这样不便于维护。
  • 当业务逻辑需要拓展的时候,state中存储数据,当别的组件需要你这个数据的时候,会很麻烦,redux更方便。
  • 不必担心redux消耗内存,redux内存5个G(chrome浏览器)

componentWillReceiveProps的调用时机?

  • componentWillReceiveProps这个生命周期在16.3之后已经被废弃,在组件接受到一个新的props时被调用,当组件初始化render的时候不会被调用。

setState是同步的还是异步的?

  • 看具体情况:
  • 首先如果直接在setState后面获取state的值是获取不到的,在原生环境中是异步的。
  • 在异步请求(ajax中)或者setInterval,setTimeout,setState就是同步更新的。

执行两次setState的时候会render几次?会不会立即触发?

  • 只执行一次,不会立即触发,因为react中有批处理机制,React会把setState的调用合并为一个来执行,也就是说,当执行setState的时候,state中的数据并不会马上更新,会按照先进先出,按顺序进行执行,但是在 Ajax、setTimeout 等异步方法中,每 setState 一次,就会 re-render 一次。

为什么直接修改this.state无效

setState本质是通过一个队列机制实现state更新的。 执行setState时,会将需要更新的state放入状态队列,而不会立刻更新state,队列机制可以批量更新state。 如果不通过setState而直接修改this.state,那么这个state不会放入状态队列中,下次调用setState时对状态队列进行合并时,会忽略之前直接被修改的state,这样我们就无法合并了,而且实际也没有把你想要的state更新上去。

react事件和dom事件区别

  • 所有事件挂载到 document上;event不是原生对象,是syntheticEvent合成的事件对象;dispatchEvent

state 和 props 区别是啥?

  • state 是组件自己管理数据,控制自己的状态,可变;
  • props 是外部传入的数据参数,不可变;
  • 没有state的叫做无状态组件,有state的叫做有状态组件;
  • 多用 props,少用 state,也就是多写无状态组件。

请简述TCP\UDP的区别

  • TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
  • TCP提供可靠的服务(数据传输),UDP无法保证
  • TCP面向字节流,UDP面向报文
  • TCP数据传输慢,UDP数据传输快

React.memo()和React.PureComponent组件异同:

  • 异:React.memo()是函数组件,React.PureComponent是类组件。
  • 同:都是对接收的props参数进行浅比较,解决组件在运行时的效率问题,优化组件的重渲染行为。
  • useMemo()是定义一段函数逻辑是否重复执行。
  • 若第二个参数为空数组,则只会在渲染组件时执行一次,传入的属性值的更新也不会有作用。 所以useMemo()的第二个参数,数组中需要传入依赖的参数。

如何避免Ajax数据的重新获取

  • 使用react-redux来进行全局状态的管理
  • 判断redux中有没有之前的数据,如果有就直接复用,不需要再次发送请求。

组件是什么,类是什么,类被编译成什么?

  • 组件是页面的一部分,是一个功能的集合。
  • 类实际上是构造函数。
  • 类就是被编译成了构造函数。

reselect是什么

  • 类似于vue中的computed计算属性
  • 派生数据
  • 存在值的缓存,为了做性能优化

React-router的基本原理,hashHistory,和BrowserHistory。

  • 使用HashHistory不需要后端做配合。
  • BrowserHistory需要后端的配置,假如后端不太行,建议不用这个。

什么情况下使用异步组件

  • Reloadable库
  • 当主文件体积过大的时候,使用异步组件
  • 就是一种路由懒加载(按需加载)

在react中如何防范XSS攻击

  • 慎用:dangerousSetInnerHTML={{__html:alert(1)}}

getDerivedStateFromProps?

  • 是为了替代16.3中被废弃的ComponentShouldUpdate

数据结构算法

// 4.排序 let num=[0,0,33,24,5,33,7,2,8,1] datas.sort((a,b)=>{ return a-b }) // 5,for in--对象 let obj={name:'张三',age:19} for(let m in obj){ console.log(obj[m]);//张三,19; console.log(m);//name,age; } // 6,for of--数组 let arr=[1,2,3,4,5]; for(let i of arr){ console.log('for-of',i);//1,2,3,4,5 } // 7,出现最多的console.log('res---->',res); //2,tree树形转换成扁平数组结构 function falten(data){ return data.reduce((pre,cur)=>{ let {id,name,pid,children=[]}=cur; return pre.concat([{id,name,pid}],falten(children)) },[]) } let flat=falten(res) console.log('flat----->',flat); //3,去重 let num=[0,0,33,24,5,33,7,2,8,1] function chong(data){ //<1> return Array.from(new Set(data)) // <2>, let datas=[] data.forEach((item,index)=>{ if(datas.indexOf(data[index])===-1){ datas.push(item) } }) // 4.排序 let num=[0,0,33,24,5,33,7,2,8,1] datas.sort((a,b)=>{ return a-b }) // 5,for in--对象 let obj={name:'张三',age:19} for(let m in obj){ console.log(obj[m]);//张三,19; console.log(m);//name,age; } // 6,for of--数组 let arr=[1,2,3,4,5]; for(let i of arr){ console.log('for-of',i);//1,2,3,4,5 }

作者:前端小王子M
链接:https://juejin.cn/post/7091919870253760520
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022 React 面试题(50道) 的相关文章

  • React JS - 单击时更改颜色并将默认颜色放在所有其他颜色上

    我有 x 个渲染数文章预览依赖于 API 调用的组件 div div Object keys images map index i gt return div div
  • 如何使用 css 在标题的两侧放置实线? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在标题文本上制作字段集图例样式的 背景线 https stackoverflow com questions 5985009 how can i make a fieldset legend st
  • CSS - SASS:使用基于@each的mixins来生成多个背景

    我正在使用 CSS 创建发型和颜色目录 我有 55 种不同颜色和发型的组合 每种发型和颜色都有自己的图像 SVG 文件 我需要将它们全部组合成一个背景 使用 CSS3 的多背景功能 我编写了这个混合来生成多个背景 它基于 mixin在这篇文
  • 覆盖函数(例如“警报”)并调用原始函数?

    我想用调用原始版本的新版本覆盖 Javascript 内置函数 类似于用调用的版本覆盖类上的方法 super有多种语言版本 我怎样才能做到这一点 例如 window alert function str do something addit
  • 如何创建自定义元素扩展类的新实例

    我正在尝试以下示例谷歌开发者网站 https developers google com web fundamentals getting started primers customelements extendhtml我收到错误 Typ
  • jQuery 在 Chrome 下发现错误元素

    我使用 jQuery 迭代 HTML 表 并动态填充每行的行号 通过在文本框中填充行号 function updateRowNums myTable find tr each function index this find input i
  • 为 Meteor 数据创建编号列表

    有没有办法获取 Meteor 集合中项目的编号列表的 编号 我知道我可以在 html 中做到这一点 但我觉得如果我可以在 spacebars 中放置一些东西 那么样式会更容易 如果我可以使用更好的术语 请告诉我 像这样的东西 前 20 部电
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • React + Semantic-UI:在 UI MODAL 中使用表单

    在没有 React 的普通旧 Semantic UI 中 我已经能够毫无问题地将表单放入 Modal 中 使用 Semantic UI React 版本 我能够在模态中显示表单 但它并没有按照我期望的方式工作 例如 模态框显示后 模态框内的
  • div Hello div div Howdy dere pardner div div div 我明白它的作用 但为什么叫这个名字both 什么是both mean 两者的意思是 一组两件事中的每一项 左 和 右 两件事
  • IE bug:具有不透明背景色的绝对定位元素

    我有一个绝对定位的 DIV 需要捕获 onclick 事件 事实证明 在 IE7 中 DIV 似乎没有诸如单击甚至光标之类的 足迹 例如 div width 200px height 200px position absolute bord
  • 水平平滑滚动 100px

    Heyjo problem 一周以来我一直在寻找 javascript 或 jQuery 代码 以便在我的网站上实现滚动按钮 我失败的那一刻是按钮应该多次工作的时候 他的任务不是滚动到专用元素 而是应该向左滚动 例如 100px 此外 滚动
  • 如何设置在浏览器的新选项卡(_blank)中打开的pdf文件的标题

    这是我的尝试 是否在新选项卡上打开 但它总是显示test pdf如题 function titlepath path name alert path alert name document title name window open pa
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • 如何查看网站浏览者的操作系统?

    我运行的是 Ubuntu 8 04 最近在访问网站时收到以下错误 请使用运行 Windows 98 2000 Me NT 或 XP 的计算机返回 www site com 网站如何知道我正在运行哪个操作系统 是仅通过 javascript
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • 为什么 JSON 结果可以是布尔值而不是对象或数组?

    From JSON 网站 http json org JSON 建立在两种结构之上 名称 值对的集合 在各种语言中 这被实现为对象 记录 结构 字典 哈希表 键控列表或关联数组 值的有序列表 在大多数语言中 这被实现为数组 向量 列表或序列
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • Three.js WebGL 从着色器绘制圆形自定义填充和边框颜色

    我将 Three js 与 WebGLRenderer 一起使用 我试图找出或查看如何使用 CircleGeometry 绘制圆圈的示例 并能够从顶点或片段着色器控制其填充和边框颜色 如果不使用图像作为纹理 这是否可能 抱歉 如果这真的很简
  • 允许使用 grunt browserify 进行全局转换

    我已将 jQuery 添加为 html 文件中的脚本标记 并将其添加到package json与一起工作browserify shim如下 browserify transform browserify shim browserify sh

随机推荐

  • 功能实现题

    目录 32 如何利用linux的指令来查询一个文件的行数 33 linux下统计一个文件中每个id的出现次数 34 Linux 在多个文件中查找字符串 35 如何查看占用cpu最多进程 36 如何找到 Java 进程中哪个线程占用了大量 C
  • 安装XView库

    空间 MS Windows 95 98 ME NT 2000 XP The file xview 3 2p1 4 18c cygwin tar bz2 in the cygwin directory contains a set of XV
  • 解决django从脚本文件(或其他文件)中导入app中的model时报错xxx.models.DeviceModel doesn‘t declare an explicit app_label

    完整报错 RuntimeError Model class xxxx models DeviceModel doesn t declare an explicit app label and isn t in an application
  • SpringBoot中关闭Mybatis以及RocketMQ日志打印

    SpringBoot工程集成了Mybatis和RocketMQ 也集成了Log4j 项目中自己的日志都可以通过log4j来管理 日志打印通过通过日志级别可以管理 一直很正常 后来项目上线正常稳定运行一段时间后 要求只打印ERROR级别日志
  • mysql drop table 死锁

    1 场景 mysql出现大量的drop table阻塞操作 2 从会话表 processlist 里面和事务表INNODB TRX里面并找不到正在占用锁的会话和事务 3 分析锁信息 INNODB LOCKs 和INNODB LOCK wai
  • 使用 Oracle的存储过程实现数据加密和解密

    我们都知道 几乎所有的数据库都有存储过程 但在实际开发中 它有什么用途了 下面使用Oracle的存储过程 采用Oracle自带的dbms obfuscation toolkit desencrypt对数据进行加密 需要注意的是密码的长度必须
  • Linux网络安全-Zabbix入门(一)

    一 基本概念 1 监控目的 运行情况 提前发现问题 2 监控资源类别 公开 tcp udp 端口 私有 cpu 磁盘 监控一切需要监控的东西 只要能够想到 能够用命令实现的都能用来监控 如果想远程管理服务器就有远程管理卡 比如Dell id
  • springboot后端返回图片,vue前端接收并显示的解决方案

    后端图片数据返回 后端通过二进制流的形式 写入response中 controller层 获取签到二维码 GetMapping sign up pict public void signUpPict Long id Long semId H
  • 【树状数组该回炉重造了】Codeforces Round #813 (Div. 2) E2. LCM Sum (hard version)

    参考题解 题意 T T T 组数据 每组数据给定 l l l 和 r r
  • 一步步实现扫雷

    扫雷 首先去建立三个文件 头文件 game h 用于存放每个函数的声明 源文件1 game c 用于放置每个函数的定义 源文件2 test c 用于实现扫雷的整体逻辑 关于扫雷的实现 首先需要定义棋盘 这里我们实现9 9的棋盘 但是面对用户
  • Zabbix配置SNMP trap告警的例子

    官方文档 3 SNMP 陷阱 1 安装Trap组件包 yum install y net snmp utils net snmp perl net snmp 2 下载并复制接收Trap脚本 wget https sourceforge ne
  • doris-查询原理

    目录 一 查询简介 二 查询流程 1 Query 接收 2 Query Parse 3 Query Analyze 4 Query Rewrite 5 Plan 5 1 Query 单机Plan 5 2 Query 分布式Plan 6 Qu
  • 【bug】antd全局的主题色样式被覆盖,被修改为`antd`默认的主题色

    背景 项目本身修改了主题色 配置如下 umi配置文件 export default theme primary color 2F54EB 全局主色 需要对图片上传组件做封装 并在项目中统一引用 如下 import TdsUpload fro
  • mapengpeng1999@163.com 操作系统4~处理机调度

    处理机调度 1 三级调度体系 1 处理机调度主要是对处理机运行时间进行分配 即 按照一定算法或策略 将处理机运行时间分配给各个并发进程 同时尽量提高处理机的使用效率 2 现代操作系统中 按调度所实现的功能分3种类型 高级调度 中级调度和低级
  • python3 爬取36氪新闻网页

    一个做了反爬的36氪 返回数据恶心 感觉是一堆垃圾 这里只是记录一下爬取过程 一 爬取环境 win10 python3 scrapy 二 爬取过程 1 入口 搜索 2 动态js数据加载 查看下一页操作 3 返回数据 4 请求链接 http
  • Jmeter 数据库压力测试

    一 jmeter本地数据库压力测试 1 将JMeterPlugins Extras jar和JMeterPlugins Standard jar放到apache jmeter 3 0 lib ext目录下 2 在本地打开ServerAgen
  • 操作系统学习(九)进程通信

    一 知识总览 二 定义 进程通信是指进程之间的信息交换 每个进程都拥有自己的内存空间 是相互独立的 这样在每个进程执行时 才不会被其他进程所干扰 三 进程通信的方式 1 共享存储 1 两个进程对共享区的访问必须是互斥的 即在同一时间内 只允
  • C语言实现kafka多线程,【转】c++(11)使用librdkafka库实现kafka的消费实例

    版权声明 本文为博主原创文章 遵循 CC 4 0 by sa 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net lijinqi1987 article details 76691170 librdk
  • AspectJ使用

    一 AOP介绍 AOP Aspect Oriented Programming 面向切面编程 是一种新的方法论 编程范式 是对传统 OOP Object Oriented Programming 面向对象编程 的补充 旨在通过允许横切关注点
  • 2022 React 面试题(50道)

    什么是同源 如果两个页面 接口 的协议 域名 端口号都相同 我们认为他们具6511有相同的源 UmiJs和dva roadhog是什么关系 roadhog 是基于 webpack 的封装工具 目的是简化 webpack 的配置 umi 可以