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

网站建设需要准备什么做网站时点击显示

网站建设需要准备什么,做网站时点击显示,饮料网站建设价格,电子营销主要做什么什么原因会促使你脱离 create-react-app 的依赖 当你想去配置 webpack 或 babel presets。 React 16中新生命周期有哪些 关于 React16 开始应用的新生命周期#xff1a; 可以看出#xff0c;React16 自上而下地对生命周期做了另一种维度的解读#xff1a; Render 阶段 可以看出React16 自上而下地对生命周期做了另一种维度的解读 Render 阶段用于计算一些必要的状态信息。这个阶段可能会被 React 暂停这一点和 React16 引入的 Fiber 架构我们后面会重点讲解是有关的Pre-commit阶段所谓“commit”这里指的是“更新真正的 DOM 节点”这个动作。所谓 Pre-commit就是说我在这个阶段其实还并没有去更新真实的 DOM不过 DOM 信息已经是可以读取的了Commit 阶段在这一步React 会完成真实 DOM 的更新工作。Commit 阶段我们可以拿到真实 DOM包括 refs。 与此同时新的生命周期在流程方面仍然遵循“挂载”、“更新”、“卸载”这三个广义的划分方式。它们分别对应到 挂载过程 constructorgetDerivedStateFromPropsrendercomponentDidMount 更新过程 getDerivedStateFromPropsshouldComponentUpdaterendergetSnapshotBeforeUpdatecomponentDidUpdate 卸载过程 componentWillUnmount React.forwardRef是什么它有什么作用 React.forwardRef 会创建一个React组件这个组件能够将其接受的 ref 属性转发到其组件树下的另一个组件中。这种技术并不常见但在以下两种场景中特别有用 转发 refs 到 DOM 组件在高阶组件中转发 refs 为什么虚拟 dom 会提高性能 虚拟 dom 相当于在 js 和真实 dom 中间加了一个缓存利用 dom diff 算法避免了没有必要 的 dom 操作从而提高性能 具体实现步骤如下: 用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树 插到文档当中;当状态变更的时候重新构造一棵新的对象树。然后用新的树和旧的树进行比较记 录两棵树差异;把 2 所记录的差异应用到步骤 1 所构建的真正的 DOM 树上视图就更新了。 vue 或者react 优化整体优化 虚拟dom 为什么虚拟 dom 会提高性能?(必考) 虚拟 dom 相当于在 js 和真实 dom 中间加了一个缓存利用 dom diff 算法避免了没有必要的 dom 操作从而提高性能。 用 JavaScript 对象结构表示 DOM 树的结构然后用这个树构建一个真正的 DOM 树插到文档当中当状态变更的时候重新构造一棵新的对象树。然后用新的树和旧的树进行比较记录两棵树差异把 2 所记录的差异应用到步骤 1 所构建的真正的 DOM 树上视图就更新了。 对componentWillReceiveProps 的理解 该方法当props发生变化时执行初始化render时不执行在这个回调函数里面你可以根据属性的变化通过调用this.setState()来更新你的组件状态旧的属性还是可以通过this.props来获取,这里调用更新状态是安全的并不会触发额外的render调用。 使用好处 在这个生命周期中可以在子组件的render函数执行前获取新的props从而更新子组件自己的state。 可以将数据请求放在这里进行执行需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。于是该请求只会在该组件渲染时才会发出从而减轻请求负担。 componentWillReceiveProps在初始化render的时候不会执行它会在Component接受到新的状态(Props)时被触发一般用于父组件状态更新时子组件的重新渲染。 参考 前端进阶面试题详细解答 hooks父子传值 父传子 在父组件中用useState声明数据const [ data, setData ] useState(false)把数据传递给子组件 Child data{data} /子组件接收 export default function (props) {const { data } propsconsole.log(data) } 子传父 子传父可以通过事件方法传值和父传子有点类似。 在父组件中用useState声明数据const [ data, setData ] useState(false)把更新数据的函数传递给子组件 Child setData{setData} /子组件中触发函数更新数据就会直接传递给父组件 export default function (props) {const { setData } propssetData(true) } 如果存在多个层级的数据传递也可依照此方法依次传递// 多层级用useContext const User () {// 直接获取不用回调const { user, setUser } useContext(UserContext);return Avatar user{user} setUser{setUser} /; };React 组件中怎么做事件代理它的原理是什么 React基于Virtual DOM实现了一个SyntheticEvent层合成事件层定义的事件处理器会接收到一个合成事件对象的实例它符合W3C标准且与原生的浏览器事件拥有同样的接口支持冒泡机制所有的事件都自动绑定在最外层上。 在React底层主要对合成事件做了两件事 事件委派 React会把所有的事件绑定到结构的最外层使用统一的事件监听器这个事件监听器上维持了一个映射来保存所有组件内部事件监听和处理函数。自动绑定 React组件中每个方法的上下文都会指向该组件的实例即自动绑定this为当前组件。 react性能优化是哪个周期函数 shouldComponentUpdate 这个方法用来判断是否需要调用render方法重新描绘dom。因为dom的描绘非常消耗性能如果我们能在shouldComponentUpdate方法中能够写出更优化的dom diff算法可以极大的提高性能 如何告诉 React 它应该编译生产环境版 通常情况下我们会使用 Webpack 的 DefinePlugin 方法来将 NODE_ENV 变量值设置为 production。编译版本中 React会忽略 propType 验证以及其他的告警信息同时还会降低代码库的大小React 使用了 Uglify 插件来移除生产环境下不必要的注释等信息 何为 redux Redux 的基本思想是整个应用的 state 保持在一个单一的 store 中。store 就是一个简单的 javascript 对象而改变应用 state 的唯一方式是在应用中触发 actions然后为这些 actions 编写 reducers 来修改 state。整个 state 转化是在 reducers 中完成并且不应该有任何副作用。 这段代码有什么问题 class App extends Component {constructor(props) {super(props);this.state {username: 有课前端网,msg: ,};}render() {return div {this.state.msg}/div;}componentDidMount() {this.setState((oldState, props) {return {msg: oldState.username - props.intro,};});} }render ( App intro 前端技术专业学习平台ickt ) 在页面中正常输出“有课前端网-前端技术专业学习平台”。但是这种写法很少使用并不是常用的写法。React允许对 setState方法传递一个函数它接收到先前的状态和属性数据并返回一个需要修改的状态对象正如我们在上面所做的那样。它不但没有问题而且如果根据以前的状态 state以及属性来修改当前状态推荐使用这种写法。 React setState 调用之后发生了什么是同步还是异步 1React中setState后发生了什么 在代码中调用setState函数之后React 会将传入的参数对象与组件当前的状态合并然后触发调和过程(Reconciliation)。经过调和过程React 会以相对高效的方式根据新的状态构建 React 元素树并且着手重新渲染整个UI界面。 在 React 得到元素树之后React 会自动计算出新的树与老树的节点差异然后根据差异对界面进行最小化重渲染。在差异计算算法中React 能够相对精确地知道哪些位置发生了改变以及应该如何改变这就保证了按需更新而不是全部重新渲染。 如果在短时间内频繁setState。React会将state的改变压入栈中在合适的时机批量更新state和视图达到提高性能的效果。 2setState 是同步还是异步的 假如所有setState是同步的意味着每执行一次setState时有可能一个同步代码中多次setState都重新vnode diff dom修改这对性能来说是极为不好的。如果是异步则可以把一个同步代码中的多个setState合并成一次组件更新。所以默认是异步的但是在一些情况下是同步的。 setState 并不是单纯同步/异步的它的表现会因调用场景的不同而不同。在源码中通过 isBatchingUpdates 来判断setState 是先存进 state 队列还是直接更新如果值为 true 则执行异步操作为 false 则直接更新。 异步 在 React 可以控制的地方就为 true比如在 React 生命周期事件和合成事件中都会走合并操作延迟更新的策略。同步 在 React 无法控制的地方比如原生事件具体就是在 addEventListener 、setTimeout、setInterval 等事件中就只能同步更新。 一般认为做异步设计是为了性能优化、减少渲染次数 setState设计为异步可以显著的提升性能。如果每次调用 setState都进行一次更新那么意味着render函数会被频繁调用界面重新渲染这样效率是很低的最好的办法应该是获取到多个更新之后进行批量更新如果同步更新了state但是还没有执行render函数那么state和props不能保持同步。state和props不能保持一致性会在开发中产生很多的问题 使用状态要注意哪些事情 要注意以下几点。 不要直接更新状态 状态更新可能是异步的 状态更新要合并。 数据从上向下流动 对 React-Intl 的理解它的工作原理 React-intl是雅虎的语言国际化开源项目FormatJS的一部分通过其提供的组件和API可以与ReactJS绑定。 React-intl提供了两种使用方法一种是引用React组件另一种是直接调取API官方更加推荐在React项目中使用前者只有在无法使用React组件的地方才应该调用框架提供的API。它提供了一系列的React组件包括数字格式化、字符串格式化、日期格式化等。 在React-intl中可以配置不同的语言包他的工作原理就是根据需要在语言包之间进行切换。 diff算法如何比较? 只对同级比较跨层级的dom不会进行复用不同类型节点生成的dom树不同此时会直接销毁老节点及子孙节点并新建节点可以通过key来对元素diff的过程提供复用的线索单节点diff单点diff有如下几种情况key和type相同表示可以复用节点key不同直接标记删除节点然后新建节点key相同type不同标记删除该节点和兄弟节点然后新创建节点 在 Redux中使用 Action要注意哪些问题 在Redux中使用 Action的时候 Action文件里尽量保持 Action文件的纯净传入什么数据就返回什么数据最妤把请求的数据和 Action方法分离开以保持 Action的纯净。 react中的Portal是什么 Portals 提供了一种很好的将子节点渲染到父组件以外的 DOM 节点的方式。 第一个参数child是任何可渲染的 React 子元素例如一个元素字符串或碎片。 第二个参数container则是一个 DOM 元素。 ReactDOM.createPortal(child, container)React中refs的作用是什么有哪些应用场景 Refs 提供了一种方式用于访问在 render 方法中创建的 React 元素或 DOM 节点。Refs 应该谨慎使用如下场景使用 Refs 比较适合 处理焦点、文本选择或者媒体的控制触发必要的动画集成第三方 DOM 库 Refs 是使用 React.createRef() 方法创建的他通过 ref 属性附加到 React 元素上。 要在整个组件中使用 Refs需要将 ref 在构造函数中分配给其实例属性 class MyComponent extends React.Component {constructor(props) {super(props)this.myRef React.createRef()}render() {return div ref{this.myRef} /} }constructor 答案是在 constructor 函数里面需要用到props的值的时候就需要调用 super(props)class语法糖默认会帮你定义一个constructor所以当你不需要使用constructor的时候是可以不用自己定义的 当你自己定义一个constructor的时候就一定要写super()否则拿不到this 当你在constructor里面想要使用props的值就需要传入props这个参数给super调用super(props)否则只需要写super()
http://www.dnsts.com.cn/news/43302.html

相关文章:

  • 手机制作最简单钓鱼网站企业内部网站建设费用
  • 品牌网站建设创意新颖东莞微网站
  • 网站建设结构图国内哪家公司做网站最好
  • 对高校网站建设的期待设计用哪些网站有哪些功能
  • 什么网站教你做美食专业简历制作管理平台
  • 影视网站建设源码哪个好成都模版网站制作
  • 网站建设评审会的通知wentommy wordpress
  • 成都网站建设思乐科技什么是电子商务网站建设
  • 做饰品一般用什么网站做首饰网站架构设计英文翻译
  • 做网站需要什么语言北京有哪些网站建设公司好
  • 网站建设自查维护报告php做网站技术
  • 电子商务网站模板页面企业网站都没的百度快照咋办
  • 网站建设推广什么意思苏州园区做网站
  • 竞价网站开发网站能赚多少钱
  • 大连网站建设服务自己网站怎么推广
  • 网站如何做触屏滑动重庆提供行业网站建站报价
  • 石材公司网站wordpress 最受欢迎主题
  • 商务网站开发流程有哪三个阶段做好的网站怎么注销
  • 中国移动网站建设怎么做技术支持 上海做网站
  • flask做的网站如何上传文件深圳市移动端网站建设
  • 物流网站建设与管理规划书舆情网站直接打开
  • 电子商务网站建设视频教学学做美食的视频网站有哪些
  • 建设部网站如何下载国标规范洛阳网站建设哪家权威
  • 岳阳网站建设解决方案网站域名备案和icp备案一样么
  • 成都 网站改版电商页面设计公司
  • 网站跟app区别公司网站公司新闻
  • 手机网站怎么建立宁波seo网络推广定制
  • 北京神州网站建设wordpress 页面下文章列表
  • 做简历好的网站平面设计正规培训机构
  • 使用wordpress建立个人网站官方新闻平台有哪些