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

怎么投诉网站制作公司o2o模式是什么意思通俗讲

怎么投诉网站制作公司,o2o模式是什么意思通俗讲,wordpress 清除cookie,购买的网站平台建设服务计入React16是一个实验版本#xff0c;除了测试它的新fiber架构外#xff0c;还添加了大量新功能。其他React.Suspense与React.lazy就是重磅中的重磅。随着前端的APP化#xff0c;不断集成功能#xff0c;页面越来越大#xff0c;bundle size以MB为单位#xff0c;我们需要拆…React16是一个实验版本除了测试它的新fiber架构外还添加了大量新功能。其他React.Suspense与React.lazy就是重磅中的重磅。随着前端的APP化不断集成功能页面越来越大bundle size以MB为单位我们需要拆分代码实现动态化加载非首屏功能。比日历城市选择器评论组件等等。动态加载在javascript模块加载规范中已经有草案并且被webpack, rollup所支持import(../components/Hello).then(Hello {console.log(Hello /); }); 相当于setTimeout模拟异步加载组件new Promise(resolve setTimeout(() resolve({// 来自另一个文件的函数式组件default: function render() {return divHello/div}}),3000) ).then(({ default: Hello }) {console.log(Hello /); }); React16提供了lazy组件实现这个功能 var {lazy, Suspense} React;var OtherComponent lazy((){return new Promise(resolve setTimeout(() resolve({default: function Hello() { //export defaultreturn divHello/div}}),3000))}); 上面只是一个方便大量测试的例子实际需要将 divHello/div 放到一个文件中使用import()语法引进来即 const OtherComponent React.lazy(() import(./OtherComponent)); OtherComponent.js的源码export default function Hello(){return divHello/div } 接着我们实现将动态功能加进组件树就是所谓的条件渲染。这个功能由React.Suspense提供。在框架不提供这功能的情况下我们需要找一个父组件将这组件动态挂上去class MyComponent extends Component {constructor() {super();this.state {};// 动态加载import(./OtherComponent).then(({ default: OtherComponent }) {this.setState({ OtherComponent });});}render() {const { OtherComponent } this.state;return (div{/* 条件渲染 */}{ OtherComponent OtherComponent / }/div);} } 但光是这样还是不行的因为单纯的动态加载会引起页面抖动我们需要loading将这个突兀的显示给缓解一下。于是这render需要改成render() {const { OtherComponent } this.state;return (div{OtherComponent ? OtherComponent /: Loading /}/div);} 如果有了Suspense组件我们就简单了不需要入侵已有的组件并且有地方挂这个loading。Suspense fallback{Loading /}OtherComponent //Suspense 需要注意的是lazy组件外面必须包着一个Suspense组件。从框架层面对用户体验提出了强制要求。下面是一个完整的例子!DOCTYPE html htmlheadmeta charsetutf-8meta nameviewport contentwidthdevice-width !--script srchttps://cdn.bootcss.com/react/16.7.0-alpha.2/umd/react.development.js/scriptscript srchttps://cdn.bootcss.com/react-dom/16.7.0-alpha.2/umd/react-dom.development.js/script --script src./dist/React.js/script script typetext/javascript src./lib/babel.js/script/headbodydiv idroot classroot/divscript typetext/babelvar { lazy, Suspense } React; var OtherComponent lazy(() {return new Promise(resolve setTimeout(() resolve({default: function render(props) {//export defaultreturn divHello,{props.name}/div;}}),3000)); }); var valueRef React.createRef() class App extends React.Component {constructor(props){super(props)this.state {name: ruby}}updateName(){var name valueRef.current.value;this.setState({name})}render() {return (divpinput ref{valueRef} onChange{this.updateName.bind(this)} value{this.state.name} /{new Date-0}/pSuspense fallback{divloading.../div}OtherComponent name{this.state.name} //Suspense/div);} }ReactDOM.render(App /, document.getElementById(root));/script/html最后说一下实现React官方是通过lazy组件主动抛错给上面Suspense组件接住的hack方式实现的https://github.com/facebook/react/blob/master/packages/react-reconciler/src/ReactFiberWorkLoop.js#L907-L1057lazy组件被读取时https://github.com/facebook/react/blob/master/packages/react-reconciler/src/ReactFiberLazyComponent.jsReact官方投入了近500行代码实现的再看一下anujs如何实现的。anujs的Suspense是异常简单就是一个虚拟组件甩手掌柜总是渲染它的孩子。它只负责挂loading。function Suspense(props){return props.children }export {Suspense } lazy组件就是将用户函数再包一层封到一个LazyComponent组件中它会根据用户的promise决定是返回上层的suspense组件的fallback属性还是延期加载回来的组件。import { miniCreateClass, isFn, get } from react-core/util; import { Component } from react-core/Component; import { createElement } from react-core/createElement; import { Suspense } from ./Suspense;var LazyComponent miniCreateClass(function LazyComponent(props, context) {this.props props;this.context context;this.state {component: null,resolved: false}var promise props.render();if(!promise || !isFn(promise.then)){throw lazy必须返回一个thenable对象}promise.then( (value) this.setState({component: value.default,resolved: true}))}, Component, {fallback(){//返回上层Suspense组件的fallback属性var parent Object(get(this)).returnwhile(parent){if( parent.type Suspense){return parent.props.fallback}parent parent.return}throw lazy组件必须包一个Suspense组件},render(){return this.state.resolved ? createElement(this.state.component) : this.fallback()} }); function lazy(fn) {return function(){return createElement(LazyComponent, {render: fn})} } export {lazy } 最后欢迎大家使用anujs 。一个迷你React框架支持react16 的所有新特性可以用于小程序中。RubyLouvre/anu​github.comnpm i anujs
http://www.zqtcl.cn/news/52962/

相关文章:

  • 酒泉建设厅网站镇江网站建设价格
  • 普通网站可以做商城成品网站建设价格
  • 济南专门做网站的公司扬中做网站的公司
  • 怎么申请建立网站百度网址大全手机浏览器
  • 东莞网站建设营销服务平台怎么制作wordpress主题
  • 免费个人网站服务器化妆品网站设计方案
  • 做网站哪里的服务器速度快崇左网站建设
  • 选择锦州网站建设上海嘉定网站建设
  • 做响应式网站用什么框架公司后台网站怎么做
  • 网站建设怎么宣传做网站 网络映射
  • 新乡网站优化公司推荐网站开发和室内制作
  • 沙坪坝网站开发网络界面设计
  • 哪里找需要网站建设的wordpress分享文章插件
  • 门头沟做网站山西seo排名
  • 东莞集团网站建设规定百度推广按效果付费是多少钱
  • 河南中恒诚信建设有限公司网站广州app开发公司排名
  • 专业建设专题网站地产公司网站建设
  • 中国建设协会网站首页茶叶电子商务网站开发技术支持
  • 如何做一份企业网站安卓app开发实例教程
  • 辽宁鞍山网站建设公司wordpress搭建本地博客
  • 电影网站建设视频教程网站建设代理加盟
  • 如何把jQuery特效做网站背景宽城网站制作
  • 网站为什么具有网络营销价值首都开发公司
  • 太原谁家网站做的好重庆建筑人员证书查询
  • 梅河口网站建设网站开发收获
  • 无锡网站维护网站建设上传视频教程
  • 不想用原来的网站模板了就用小偷工具采集了一个可是怎么替换百度seo效果
  • saas建站 彩页wordpress火车头采集图片
  • 上海网站群建设中国义乌网
  • 网站建设基础实训报告天元建设集团有限公司设计研究院赵纪峰联系方式