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

前端高频react面试题

'));reducer:处理action,返回新的state;通俗点解释:首先,用户(通过View)发出Action,发出方式就用到了dispatch方法然后,Store自动调用Reducer,并且传入两个参数...:当前State和收到的Action,Reducer会返回新的StateState—旦有变化,Store就会调用监听函数,来更新View以 store 为核心,可以把它看成数据存储中心,但是他要更改数据的时候不能直接修改...React Hooks 的限制主要有两条:不要在循环、条件或嵌套函数中调用 Hook;在 React 的函数组件中调用 Hook。那为什么会有这样的限制呢?...那为什么不要在循环、条件或嵌套函数中调用 Hook 呢?因为 Hooks 的设计是基于数组实现。在调用时按顺序加入数组中,如果使用循环、条件或嵌套函数很有可能导致数组取值错位,执行错误的 Hook。...(1)React中setState后发生了什么在代码中调用setState函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发调和过程(Reconciliation)。

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

    剥开比原看代码13:比原是如何通过list-balances显示帐户余额的?

    我们还是和以前一样,把它分成两个部分: 前端是如何向后端发送请求的 后端接收到请求数据后,是如何去查询出帐户余额的 前端是如何向后端发送请求的 对应这个功能的前端代码远比想像中复杂,我花了很多功夫才把逻辑理清楚...store,store在不同时刻的内容可以看作不同的state action是用来向reducer传递数据的,reducer将根据action的类型和参数来做不同的转换 dispatch是Redux提供的...会提供一个reduxConnect函数,帮我们把store跟react的组件连接起来,使得我们在React组件中,可以方便的去dispatch 另外,在Chrome中,有两个插件可以方便我们去调试React...经过这个reducer处理后产生的新store中就包含了与balance相关的数据,它们可以用于在别处拿出来显示在React组件中。这点我们在后面会看到。...,返回给调用者 其实我觉得这些函数的细节在这里都不用怎么展示,因为在代码分析的时候,难度不在一个具体的函数是怎么实现的,而是在于骨架和流程是怎么样的。

    1.7K10

    医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解

    在 Redux 中的 action 创建函数只是简单的返回一个 action:  function addTodo(text) { return { type: ADD_TODO,...initialValue) 里的回调函数属于相同的类型。保持 reducer 纯净非常重要。...在高级篇里会介绍如何执行有副作用的操作。现在只需要谨记 reducer 一定要保持纯净。只要传入参数相同,返回计算得到的下一个 state 就一定相同。...你可以在任何地方调用 store.dispatch(action),包括组件中、XHR 回调中、甚至定时器中。 Redux store 调用传入的 reducer 函数。...后,combineReducers 返回的 todoApp 会负责调用两个 reducer: let nextTodos = todos(state.todos, action) let nextVisibleTodoFilter

    3.7K10

    React总结概括

    组件通过dispatch发出action,store根据action的type属性调用对应的reducer并传入state和这个action,reducer对state进行处理并返回一个新的state放入...2、subscribe: 监听state的变化——这个函数在store调用dispatch时会注册一个listener监听state变化,当我们需要知道state是否变化时可以调用,它返回一个函数,调用这个返回的函数可以注销监听...getState主要在两个地方需要用到,一是在dispatch拿到action后store需要用它来获取state里的数据,并把这个数据传给reducer,这个过程是自动执行的,二是在我们利用subscribe...reducer: reducer是一个函数,它接受一个state和一个action,根据action的type返回一个新的state。...然后在ComponentDidMount中调用store.subscribe,注册了一个回调函数handleChange监听state的变化。

    1.2K20

    React进阶(4)-拆分Redux-将store,Reducer,action,actionTypes独立管理

    创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer是一个纯函数,返回一个新的state给store // 4....数据,唯一的办法就是派发action,调用store.dispatch(action)方法 而定义action,它得是一个对象,该对象下type类型必须是一个字符串类型值,这个类型值必须和reducer...    } } // 上面的也等价于,在Es6中有简写函数的形式,与下面是等价的,在React代码中这种写法很常见 /* const getInputChangeAction = (value) =...,它返回对应的类型和必要的参数的 拆分的目的主要是提高代码的可维护性 创建store单独管理 在上面的代码中,已经解决了Redux工作流程中的右半边部分,也就是做了action的拆分管理,那么接下来是整理...后,一定把reducer放到createStore()函数当做参数给传进去,这样store才会真正存储reducer的数据,同时把store给暴露出去,如下store文件夹中index.js的代码 import

    2K11

    React面试之生命周期与状态管理

    React 生命周期 在 V16 版本中引入了 Fiber 机制。这个机制一定程度上的影响了部分生命周期的调用,并且也引入了新的 2 个 API 来解决问题。...,也就是合并后的 reducer 函数 // 该函数返回总的 state // 并且你也可以发现这里使用了闭包,函数里面使用到了外面的一些属性 return function combination...[key] // state 树下的 key 是与 finalReducers 下的 key 相同的 // 所以你在 combineReducers 中传入的参数的 key 即代表了...该函数里有一个过滤参数后的对象 finalReducers,遍历该对象,然后执行对象中的每一个 reducer 函数,最后将新的 state 返回。....` ) } // 再过滤一次,考虑到万一你在 reducer 中给 ActionTypes.INIT 返回了值 // 传入一个随机的 action 判断值是否为 undefined

    30840

    React进阶(4)-拆分Redux-将store,Reducer,action,actionTypes独立管理

    创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer是一个纯函数,返回一个新的state给store // 4....') { // 这个必须要与上面定义相同 // 对原有的上一次的state做一次深拷贝,在Redux中,reducer不允许直接修改state // const newState...} } // 上面的也等价于,在Es6中有简写函数的形式,与下面是等价的,在React代码中这种写法很常见 /* const getInputChangeAction = (value) =...,也就是做了action的拆分管理,那么接下来是整理store和reducer以及React Component了 在store文件夹中创建一个index.js的文件 这个index.js主要用于创建store...后,一定把reducer放到createStore()函数当做参数给传进去,这样store才会真正存储reducer的数据,同时把store给暴露出去,如下store文件夹中index.js的代码 import

    1.7K10

    React中的Redux

    Redux中action创建函数只是简单返回一个action。...在后续的学习终将会介绍如何执行有副作用的操作,现在只需谨记reducer一定要保持纯净。只要传入参数相同,返回计算得到的下一个 state 就一定相同。...,这个函数来调用你的一系列 reducer,每个 reducer 筛选出 state 中的一部分数据并处理,然后这个生成的函数再将所有 reducer 的结果合并成一个大的对象。...合并后的 reducer 可以调用各个子 reducer,并把它们的结果合并成一个 state 对象。state 对象的结构由传入的多个 reducer 的 key 决定。...返回值 (Function):一个调用 reducers 对象里所有 reducer 的 reducer,并且构造一个与 reducers 对象结构相同的 state 对象。

    4K20

    玩转 React 服务器端渲染

    2 分钟了解 Redux 是如何运作的 关于 Store: 整个应用只有一个唯一的 Store Store 对应的状态树(State),由调用一个 reducer 函数(root reducer)生成...来触发更改 Redux 的数据流: action 是一个包含{ type, payload }的对象 reducer 函数通过store.dispatch(action)触发 reducer 函数接受(...state, action)两个参数,返回一个新的 state reducer 函数判断action.type然后处理对应的action.payload数据来更新状态树 所以对于整个应用来说,一个 Store...Server Rendering 接下来的服务器端就比较简单了,获取数据可以调用 action,routes 在服务器端的处理参考 react-router server rendering,在服务器端用一个...另外注意renderFullPage生成的页面 HTML 在 React 组件 mount 的部分( ),前后端的 HTML 结构应该是一致的。

    2.4K80

    【React】211- 2019 React Redux 完全指南

    给 Reducer 一个初始状态 记住 reducer 的职责是接收当前 state 和一个 action 然后返回新的 state。 它还有另一个职责:在首次调用的时候应该返回初始 state。...调用的时候携带 action,Redux 调用 reducer 时就会携带 action(然后 reducer 的返回值会更新 state)。 我们在 store 上试试看。...这样写是因为 connect 是一个高阶函数,它简单说就是当你调用它时会返回一个函数。然后调用返回的函数传入一个组件时,它会返回一个新(包装的)组件。...Actions 生成器在 Redex 术语中是一个简单的函数术语,它返回一个 action 对象。就这些 :) 这是其中两个,返回熟悉的 actions。...返回的产品数据后,我们写一个 reducer 把它存进 Redux store 中。

    4.3K20

    06-React状态管理 Redux(工作流程, 核心概念, 求和案例, 异步Action, React-Redux, 多状态管理, 纯函数, 高阶函数, Redux开发者工具)

    Redux 简介 其实就是一个集中的状态管理技术, 类似于VueX, 以及后端的分布式配置中心, 在前端的文章里提后端,是不是不太好~, 但是能学习这个技术的人, 从简短的一句话中应该就已经简单的了解了这个技术...函数 参数 作用 getState() 无 获取state dispatch(action) action对象 分发action,处罚reducer调用,产生新的state subscribe(listener...) listener对象 注册监听,当产生新的state时,自动调用 Redux完整版 对面上的案例进行改造 新增常量constant.js /** * 该模块用于定义action对象的type类型...在调用dispatch的时候传入的action对象, 如果对象是Object, 那么就是同步的action, 如果是函数, 那么就是异步的action 添加依赖 yarn add redux-thunk..., 优化为一个对象, 直接返回一个action, 然后react-redux会自动调用dispatch进行action分发 优化Index组件 import React from 'react'; import

    2K20

    【React】归纳篇(十)组件间通信方式之Redux | UI组件AntDesign | Redux-react

    简单来说,路由就是用来跟后端服务器进行交互的一种方式,通过不同的路径来请求不同的资源。...(req,res){}) 当node接收到一个请求时,依据请求路径找到匹配的路由,调用路由中的函数来处理请求,返回响应数据 前台路由 注册路由: 当浏览器的hash变为#about时,当前路由组件就会变为...)=>({type:'INCREMENT',data:number}) reducer 根据老的State和action,产生新的state的纯函数 export default function counter...getState(): 得到state dispatch(action): 分发action,触发reducer调用,产生新的state subscribe(listener): 注册监听,当产生新的...(oldState,action){return newState} 旧状态返回新状态 Action Creators 工厂函数 ,生产action函数,用type标识函数类型。

    26330

    ReactNative之Redux详解

    而Reducer对应方法,会根据Action携带的信息来修改State对象,并把修改后的State对象返回出去。当然返回这新的State会更新到Store中,从而会触发一系列的监听操作。...因为该示例中是在一个Reducer中处理的两个Action,所以得用 CountActionType 类型来判断派发的是哪个Action,然后做对应的操作。...如果是Desc的话,与Add类似,只不过做的是减法操作。 在该Reducer方法中,返回的是一个计算后端新的State。...Store在收到 Component 派发的 Action 后会调用对应的 Reducer。...而Reducer也可以是多个,建议将Reducer按照修改状态的类型或者相关的业务逻辑进行拆分,拆分成多个业务模块。修改不同的状态时,会调用不同的Reducer。 ?

    1.4K10

    俺好像看懂了公司前端代码

    今天的重点是React或React Native如何高效管理调用后端接口,和上篇讲到Vue管理后端接口一样,它们有很多相似性,也有不同之处,因为我们知道它们开发模式和方法有些不同。...而在Redux中主要有Reducer和Action,Reducer是一个纯函数,根据不同的Action返回不同的状态,Action则是用于改变状态唯一途径。...最后将生成的reducers交给redux管理,actions则为组件提供调用。actions函数里面有三步,包括请求前,请求中和请求后对状态的处理。...这三步是为了设置接口请求的loading状态,通过loading状态来处理页面的加载效果,省去在组件中自定义的逻辑判断。下图为每个接口在action函数的数据处理。...我们这里需要自己封装一个高阶组件,里面调用react-redux提供的connect函数将state和dispatch映射到组件的props,此外还需要定义两个函数映射到props中,一个是用于调用接口的函数

    1.3K10
    领券