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

我的校园网站制作四川省建设领域信用系统网站

我的校园网站制作,四川省建设领域信用系统网站,o2o网站建设最好公司,seo网络推广教程高级特性 1#xff0c;protals#xff08;传送门#xff09;#xff1a;将子组件渲染到父组件之外。 实例场景#xff1a;父组件的儿子是Modal组件#xff0c;使用fixed定位虽然样式看着是在父组件之外了#xff0c;但是打开控制台查看元素#xff0c;Modal相…高级特性 1protals传送门将子组件渲染到父组件之外。 实例场景父组件的儿子是Modal组件使用fixed定位虽然样式看着是在父组件之外了但是打开控制台查看元素Modal相关的html还是嵌套在idApp里面。由于fixed定位的元素最好是直接放到body里具有更好的兼容性所以需要使用protals让modal渲染到body下 import ReactDom from react-dom;class Test extends from React.component{render(){return ReactDom.createPortal(div classNamemodal这是一个模态框/div, document.body)} } 常用场景 fixed浏览器兼容性父组件z-index太小父组件设置了overflow:hidden  2context多层级组件传值 场景使用props层层传递太啰嗦使用redux太繁重。 那么可以选择使用context或者recoil // A.jsx const ThemeContext React.creatContext(light)class A extends React.Component{this.state { theme: }render(){ThemeContext.Provider value{this.state.theme} B /button onClick{()setState({val:hh})} /button/ThemeContext.Provider} }// B.jsxclass B extends React.Component{render(){divC //div} }// C.jsxclass组件class C extends React.Component{const { theme } this.context;static contextType ThemeContext render(){div{theme}/div} }C.contextTypeThemeContext // 如果不这样写需要在C组件中将注释打开// C.jsx 函数组件 function C (){ return ThemeContext.Consumer {themetheme} /ThemeContext.Consumer } 性能优化 1异步加载组件 组件比较大import()或者路由懒加载React.LazyReact.Suspense import()正常的组件会随着整个项目打包成一个MD5.js的文件但是异步加载的组件会单独打包成一个md5.js文件 React.Lazy()相当于一个构造函数将引入的组件作为输入封装后输出一个异步的组件 React.Suspense const Dom React.lazy(()import(../bigComponent)class App extends from React.component{render(){return React.Suspense fullback{div...loading/div}Dom //React.Suspense} } 2scu memo配合useMemouseCallback使用) 比如以下结构代码 // index.tsx const Index(){ const [val,setVal]useState(1); const [b,setb]useState(hh); const add ()setVal(val1); const callbackFn ()alert(hi); return divbutton onClick{add}按钮{val}/buttonB b{b} callbackFn{handle} / /div }// B.tsx const B (b,callbackFn){ console.log(我又被执行了一遍这就是刷新了这个组件) return div{b} /div } 每次点击按钮B组件都会打印那句话这就说明B组件的代码又被执行了一遍进行重复渲染。为了解决这个重复渲染变量用useMemo封装起来函数用useCallback封装起来 // index.tsx const Index(){ const [val,setVal]useState(1); const [b,setb]useState(hh); const add ()setVal(val1);const bprops useMemo(()b,[b]); const callbackFn useCallback(()alert(hi),[]);return divbutton onClick{add}按钮{val}/buttonB b{b} callbackFn{handle} / /div }// B.tsx const B (b,callbackFn){ console.log(我又被执行了一遍这就是刷新了这个组件) return div{b} /div }
http://www.w-s-a.com/news/398127/

相关文章:

  • 怎样建设网站论文合肥做网站的软件公司
  • 收款后自动发货的网站是怎么做的怎么看网站后台网页尺寸
  • 谷歌seo引擎优化宁波seo关键词
  • 外贸网站建设需要注意什么seo课程
  • 做信息图网站网站建设的软件介绍
  • 网站开发语言数据库有几种魏县审批建设的网站
  • 北京公司网站建设推荐海口建设
  • 不懂编程如何做网站婚礼网站模板
  • 像京东一样的网站wordpress入门视频教程7 - 如何在文章里加入视频和音乐
  • 惠州网站建设排名wordpress3万篇文章优化
  • 创建网站的三种方法北京建王园林工程有限公司
  • jsp网站建设模板下载十大免费excel网站
  • 网络公司网站图片网站建立好了自己怎么做优化
  • 云主机是不是可以搭建无数个网站百度快速seo优化
  • 房地产怎么做网站推广建立音乐网站
  • 川畅科技联系 网站设计网站开发的教学视频
  • 为什么学网站开发凡科登陆
  • 设计师常备设计网站大全中山精品网站建设信息
  • 杭州建设工程网seo服务是什么
  • 兼职做问卷调查的网站wordpress mysql设置
  • 怎么在百度上能搜到自己的网站山西seo谷歌关键词优化工具
  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳
  • 网站建设ssc源码修复设计班级网站建设
  • 网站重定向凡科做网站不要钱
  • 佛山html5网站建设微信营销软件破解版
  • 网站单页做301南京百度推广
  • 私人做网站要多少钱展芒设计网页
  • 怎样网站制作设计如何在网上推广农产品
  • 做关键词排名卖网站聚名网