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

建设银行杭州分行网站网页设计师学历要求

建设银行杭州分行网站,网页设计师学历要求,wordpress用于商业,抖音代运营怎么解绑1 React 中 keys 的作⽤是什么#xff1f; Keys 是 React ⽤于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识在开发过程中#xff0c;我们需要保证某个元素的 key 在其同级元素中具有唯⼀性。在 React Diff 算法中 React 会借助元素的 Key 值来判断该元素是新近创建…1 React 中 keys 的作⽤是什么 Keys 是 React ⽤于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识在开发过程中我们需要保证某个元素的 key 在其同级元素中具有唯⼀性。在 React Diff 算法中 React 会借助元素的 Key 值来判断该元素是新近创建的还是被移动⽽来 的元素从⽽减少不必要的元素重渲染。此外React 还需要借助 Key 值来判断元素与 本地状态的关联关系因此我们绝不可忽视转换函数中 Key 的重要性 2 传⼊ setState 函数的第⼆个参数的作⽤是什么 该函数会在 setState 函数调⽤完成并且组件开始重渲染的时候被调⽤我们可以⽤该函数来监听渲染是否完成this.setState( { username: tylermcginnis33 }, () console.log(setState has finished and the component has re-rendere ) this.setState((prevState, props) { return { streak: prevState.streak props.count } })3 React 中 refs 的作⽤是什么 Refs 是 React 提供给我们的安全访问 DOM 元素或者某个组件实例的句柄可以为元素添加 ref 属性然后在回调函数中接受该元素在 DOM 树中的句柄该值会作为 回调函数的第⼀个参数返回 4 在⽣命周期中的哪⼀步你应该发起 AJAX 请求 我们应当将AJAX 请求放到 componentDidMount 函数中执⾏主要原因有下React 下⼀代调和算法 Fiber 会通过开始或停⽌渲染的⽅式优化应⽤性能其会影响 到 componentWillMount 的触发次数。对于 componentWillMount 这个⽣命周期函数 的调⽤次数会变得不确定 React 可能会多次频繁调⽤ componentWillMount 。如果我 们将 AJAX 请求放到 componentWillMount 函数中那么显⽽易⻅其会被触发多次⾃ 然也就不是好的选择。如果我们将 AJAX 请求放置在⽣命周期的其他函数中我们并不能保证请求仅在组件挂载 完毕后才会要求响应。如果我们的数据请求在组件挂载之前就完成并且调⽤了 setState 函数将数据添加到组件状态中对于未挂载的组件则会报错。⽽在 componentDidMount 函数中进⾏ AJAX 请求则能有效避免这个问题 5 shouldComponentUpdate 的作⽤ shouldComponentUpdate 允许我们⼿动地判断是否要进⾏组件更新根据组件的应⽤场景设置函数的合理返回值能够帮我们避免 不必要的更新6 如何告诉 React 它应该编译⽣产环境版 通常情况下我们会使⽤ Webpack 的 DefinePlugin ⽅法来将 NODE_ENV变量值设置为 production 。编译版本中 React 会忽略propType 验证以及其他的告警信息同时还会降低代码库的⼤⼩ React 使⽤了 Uglify插件来移除⽣产环境下不必要的注释等信息7 概述下 React 中的事件处理逻辑 为了解决跨浏览器兼容性问题 React 会将浏览器原⽣事件 BrowserNative Event 封装为合成事件 SyntheticEvent 传⼊设置的事件处理器中。这⾥的合成事件提供了与原⽣事件相同的接⼝不过它们屏蔽了底层浏览器的细节差异保证了⾏为的⼀致 性。另外有意思的是 React 并没有直接将事件附着到⼦元素上⽽是以单⼀事件监听器的⽅式将所有的事件发送到顶层进⾏ 处理。这样 React 在更新 DOM 的时候就不需要考虑如何去处理附着在 DOM 上的事件监听器最终达到优化性能的⽬的8 createElement 与 cloneElement 的区别是什么 createElement 函数是 JSX 编译之后使⽤的创建 React Element 的函数⽽ cloneElement 则是⽤于复制某个元素并传 ⼊新的 Props9 redux中间件 中间件提供第三⽅插件的模式⾃定义拦截 action - reducer 的过程。变为 action - middlewares - reducer 。这种机 制可以让我们改变数据流实现如异步 action action 过滤⽇志输出异常报告等功能redux-logger 提供⽇志输出redux-thunk 处理异步操作redux-promise 处理异步操作 actionCreator 的返回值是 promise 10 redux有什么缺点 ⼀个组件所需要的数据必须由⽗组件传过来⽽不能像 flux 中直接从 store 取。当⼀个组件相关数据更新时即使⽗组件不需要⽤到这个组件⽗组件还是会重新 render 可能会有效率影响或者需要写复杂的 shouldComponentUpdate 进⾏判断。 11 react组件的划分业务组件技术组件 根据组件的职责通常把组件分为UI组件和容器组件。UI 组件负责 UI 的呈现容器组件负责管理数据和逻辑。两者通过 React-Redux 提供 connect ⽅法联系起来 12 react⽣命周期函数 初始化阶段 getDefaultProps :获取实例的默认属性getInitialState :获取每个实例的初始化状态componentWillMount 组件即将被装载、渲染到⻚⾯上render :组件在这⾥⽣成虚拟的 DOM 节点omponentDidMount :组件真正在被装载之后 运⾏中状态 componentWillReceiveProps :组件将要接收到属性的时候调⽤shouldComponentUpdate :组件接受到新属性或者新状态的时候可以返回false接收数据后不更新阻⽌ render 调⽤后⾯的函数不会被继续执⾏了componentWillUpdate :组件即将更新不能修改属性和状态 render :组件重新描绘componentDidUpdate :组件已经更新 销毁阶段 componentWillUnmount :组件即将销毁 13 react性能优化是哪个周期函数 shouldComponentUpdate 这个⽅法⽤来判断是否需要调⽤render⽅法重新描 绘dom。因为dom的描绘⾮常消耗性能如果我们能在 shouldComponentUpdate⽅ 法中能够写出更优化的 dom diff 算法可以极 ⼤的提⾼性能 14 为什么虚拟dom会提⾼性能 虚拟 dom 相当于在 js 和真实 dom 中间加了⼀个缓存利⽤ dom diff 算法避免了没有必要的 dom 操作从⽽提⾼性能具体实现步骤如下 ⽤ JavaScript 对象结构表示 DOM 树的结构然后⽤这个树构建⼀个真正的 DOM 树 插到⽂档当中当状态变更的时候重新构造⼀棵新的对象树。然后⽤新的树和旧的树进⾏⽐较记录两 棵树差异把2所记录的差异应⽤到步骤1所构建的真正的 DOM 树上视图就更新 15 diff算法? 把树形结构按照层级分解只⽐较同级元素。给列表结构的每个单元添加唯⼀的 key 属性⽅便⽐较。React 只会匹配相同 class 的 component 这⾥⾯的 class 指的是组件的名字合并操作调⽤ component 的 setState ⽅法的时候, React 将其标记为 - dirty . 到每⼀个事件循环结束, React 检查所有标记 dirty 的 component 重新绘制.选择性⼦树渲染。开发⼈员可以重写 shouldComponentUpdate 提⾼ diff 的性能 16 react性能优化⽅案 重写 shouldComponentUpdate 来避免不必要的dom操作使⽤ production 版本的 react.js使⽤ key 来帮助 React 识别列表中所有⼦组件的最⼩变化 17 简述flux 思想 Flux 的最⼤特点就是数据的单向流动。⽤户访问 ViewView 发出⽤户的 ActionDispatcher 收到 Action 要求 Store 进⾏相应的更新Store 更新后发出⼀个 “change” 事件View 收到 “change” 事件后更新⻚⾯ 18 说说你⽤react有什么坑点 JSX做表达式判断时候需要强转为boolean类型 如果不使⽤ !!b 进⾏强转数据类型会在⻚⾯⾥⾯输出 0 。render() { const b 0; return div { !!b div这是⼀段⽂本/div } /div }尽量不要在 componentWillReviceProps ⾥使⽤ setState如果⼀定要使⽤那么需要判 断结束条件不然会出现⽆限重渲染导致⻚⾯崩溃给组件添加ref时候尽量不要使⽤匿名函数因为当组件更新的时候匿名函数会被当做 新的prop处理让ref属性接受到新函数的时候react内部会先清空ref也就是会以null为回 调参数先执⾏⼀次ref这个props然后在以该组件的实例执⾏⼀次ref所以⽤匿名函数做ref 的时候有的时候去ref赋值后的属性会取到null遍历⼦节点的时候不要⽤ index 作为组件的 key 进⾏传⼊ 19 我现在有⼀个button要⽤react在上⾯绑定点击事件要怎么做 class Demo { render() { return button onClick{(e) { alert(我点击了按钮) }} 按钮 /button } }你觉得你这样设置点击事件会有什么问题吗 由于 onClick 使⽤的是匿名函数所有每次重渲染的时候会把该onClick 当做⼀个新的 prop 来处理会将内部缓存的 onClick 事件进⾏重新赋值所以相对直接使⽤函数来说可能有⼀点的性能下降修改 class Demo { onClick (e) { alert(我点击了按钮) } render() { return button onClick{this.onClick} 按钮 /button }20 react 的虚拟dom是怎么实现的 ⾸先说说为什么要使⽤ Virturl DOM 因为操作真实 DOM 的耗费的性能代价太⾼所以 react 内部使⽤ js 实现了⼀套dom结构 在每次操作在和真实dom之前使⽤实现好的diff算法对虚拟dom进⾏⽐较递归找出有变化的dom节点然后对其进⾏更新操作。 为了实现虚拟 DOM 我们需要把每⼀种节点类型抽象成对象每⼀种节点类型有⾃⼰的属性也就是prop每次进⾏ diff 的时候 react 会先⽐较该节点类型假如节点类型不⼀样那么react 会直接删除该节点然后直接创建新的节点插⼊到其中假如节点类型 ⼀样那么会⽐较 prop 是否有更新假如有 prop 不⼀样那么 react会判定该节点有更新那么重渲染该节点然后在对其⼦ 节点进⾏⽐较⼀层⼀层往下直到没有⼦节点21 react 的渲染过程中兄弟节点之间是怎么处理的也就是key值不⼀样的时候 通常我们输出节点的时候都是map⼀个数组然后返回⼀个 ReactNode 为了⽅便 react 内部进⾏优化我们必须给每⼀个 reactNode 添加 key 这个 key prop 在设计值处不是给开发者⽤的⽽是给react⽤的⼤概的作⽤就是给每⼀个 reactNode添加⼀个身份标识⽅便react进⾏识别在重渲染过程中如果key⼀样若组件属性有所变化则 react 只更新组件对应的属性没有变化则不更新如果key不⼀样则react先销毁该组件然后重新创建该组件22 那给我介绍⼀下react 以前我们没有jquery的时候我们⼤概的流程是从后端通过ajax获取到数据然后使⽤jquery ⽣成dom结果然后更新到⻚⾯当中但是随着业务发展我们的项⽬可能会越来越复杂 我们每次请求到数据或则数据有更改的时候我们⼜需要重新组装⼀次dom结构然后 更新⻚⾯这样我们⼿动同步dom和数据的成本就越来越⾼⽽且频繁的操作dom也使 我我们⻚⾯的性能慢慢的降低。这个时候mvvm出现了mvvm的双向数据绑定可以让我们在数据修改的同时同步dom的更 新dom的更新也可以直接同步我们数据的更改这个特定可以⼤⼤降低我们⼿动去维护 dom更新的成本mvvm为react的特性之⼀虽然react属于单项数据流需要我们⼿动实 现双向数据绑定。有了mvvm还不够因为如果每次有数据做了更改然后我们都全量更新dom结构的话也 没办法解决我们频繁操作dom结构(降低了⻚⾯性能)的问题为了解决这个问题react内 部实现了⼀套虚拟dom结构也就是⽤js实现的⼀套dom结构他的作⽤是讲真实dom在js 中做⼀套缓存每次有数据更改的时候react内部先使⽤算法也就是鼎鼎有名的diff算 法对dom结构进⾏对⽐找到那些我们需要新增、更新、删除的dom节点然后⼀次性对 真实DOM进⾏更新这样就⼤⼤降低了操作dom的次数。 那么diff算法是怎么运作的呢 ⾸先diff针对类型不同的节点会直接判定原来节点需要卸载并且⽤新的节点来装载卸载 的节点的位置针对于节点类型相同的节点会对⽐这个节点的所有属性如果节点的所 有属性相同那么判定这个节点不需要更新如果节点属性不相同那么会判定这个节点 需要更新react会更新并重渲染这个节点。react设计之初是主要负责UI层的渲染虽然每个组件有⾃⼰的statestate表示组件的状 态当状态需要变化的时候需要使⽤setState更新我们的组件但是我们想通过⼀个组 件重渲染它的兄弟组件我们就需要将组件的状态提升到⽗组件当中让⽗组件的状态来 控制这两个组件的重渲染当我们组件的层次越来越深的时候状态需要⼀直往下传⽆ 疑加⼤了我们代码的复杂度我们需要⼀个状态管理中⼼来帮我们管理我们状态state。这个时候redux出现了我们可以将所有的state交给redux去管理当我们的某⼀个state 有变化的时候依赖到这个state的组件就会进⾏⼀次重渲染这样就解决了我们的我们需 要⼀直把state往下传的问题。redux有action、reducer的概念action为唯⼀修改state的 来源reducer为唯⼀确定state如何变化的⼊⼝这使得redux的数据流⾮常规范同时也 暴露出了redux代码的复杂本来那么简单的功能却需要完成那么多的代码。后来社区就出现了另外⼀套解决⽅案也就是mobx它推崇代码简约易懂只需要定义 ⼀个可观测的对象然后哪个组价使⽤到这个可观测的对象并且这个对象的数据有更 改那么这个组件就会重渲染⽽且mobx内部也做好了是否重渲染组件的⽣命周期 shouldUpdateComponent不建议开发者进⾏更改这使得我们使⽤mobx开发项⽬的时 候可以简单快速的完成很多功能连redux的作者也推荐使⽤mobx进⾏项⽬开发。但是 随着项⽬的不断变⼤mobx也不断暴露出了它的缺点就是数据流太随意出了bug之后 不好追溯数据的流向这个缺点正好体现出了redux的优点所在所以针对于⼩项⽬来说 社区推荐使⽤mobx对⼤项⽬推荐使⽤redux
http://www.dnsts.com.cn/news/153579.html

相关文章:

  • 网站做关键词设计制作小车
  • 合肥万户网络seo基础入门教程
  • 深圳制作网站开发费用手机端视频网站模板下载
  • wap网站 劣势企业网站模板 优帮云
  • 少儿类网站怎么做广联达工程造价软件
  • 凡科可以做游戏网站吗阜阳做网站
  • 阿里巴巴seo站内优化方法电商运营年终总结ppt
  • 昆明网站建设时间北京建设监理协会网站
  • 温州文成网站建设织梦游戏网站源码
  • 苏州网站建设找哪家山东百搜科技有限公司
  • 网站建设前提app多少钱能做一个
  • 方维o2o 2.9蓝色团购网站程序源码模板惠州市注册公司
  • 网站设计网站机构公司官网建设多少钱
  • 在线咨询网站模板如何建设一个小型网站
  • 厦门有没网站建设的公司建筑招工人在哪个网站比较好找
  • 网站建设怎么样工作辽宁建设工程信息网站
  • 怎么让别人做网站器材管理网站开发
  • 常州模板网站建设信息全新微信号2元一个
  • 湖南省住房和城乡建设厅官方网站教育培训机构网站模板
  • 一个微信可以做两个网站支付宝吗公众号绑定网站教程
  • 软件自学网官方网站彩票网站做代理
  • wix英文网站建设wordpress 书 pdf
  • 网站改版的意义网站建设战略规划的方法
  • 建筑学院网站南京怎样优化关键词排名
  • 网站制作流程详解(学做网站第一步)网络科技有限
  • dede 网站地图样式关键词排名推广软件
  • 阿里云服务器做网站安全吗浙江建设职业技术学院网站
  • dns加网站杭州建设信用网网站
  • 郴州网站建设郴州绵阳个人网站建设
  • 企业做自己的网站要注意什么移动互联网开发学习心得