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

郑州腾石建站网站建设 从入门到精通pdf

郑州腾石建站,网站建设 从入门到精通pdf,网络营销方案ppt,彬县网站1.认识高阶函数 高阶组件 本身不是一个组件,而是一个函数函数的参数是一个组件,返回值也是一个组件 高阶组件的定义 import ThemeContext from "../context/theme_context"function withTheme(OriginComponent) {return (props) > {retur…

1.认识高阶函数

  • 高阶组件 本身不是一个组件,而是一个函数
  • 函数的参数是一个组件,返回值也是一个组件
高阶组件的定义
import ThemeContext from "../context/theme_context"function withTheme(OriginComponent) {return (props) => {return (<ThemeContext.Consumer>{value => {return <OriginComponent {...props} {...value} />}}</ThemeContext.Consumer>)}
}export default withTheme

2.高阶函数的意义

优点:

  • 利用高阶组件可以针对某些React代码进行更加优雅的处理
  • 解决早期React使用Mixin混入,引起的相互依赖,相互耦合,不利于代码维护

缺点:

  • HOC需要在 原组件上进行包裹或者嵌套,如果大量使用HOC,将会产生非常多的嵌套,这让调试变得非常困难
  • HOC 可以劫持props,在不遵守约定的情况下也可能造成冲突

3.Portals的使用

某些情况下,我们希望渲染的内容独立于父组件,甚至是独立于当前挂载到的DOM元素中(默认都是挂载到id为root的DOM 元素上的)。
Portal 提供了一种将子节点渲染到存在于父组件以外的 DOM 节点的优秀的方案:
  • 第一 个参数(child)是任何可渲染的 React 子元素,例如一个元素,字符串或 fragment
  • 第二个 参数(container)是一个 DOM 元素

通过React内置的createPortal函数实现 

 Modal.jsx

import React, { PureComponent } from 'react'
import { createPortal } from "react-dom"export class Modal extends PureComponent {render() {return createPortal(this.props.children, document.querySelector("#modal"))}
}export default Modal

 App.jsx

import React, { PureComponent } from 'react'
import { createPortal } from "react-dom"
import Modal from './Modal'export class App extends PureComponent {render() {return (<div className='app'><h1>App H1</h1>{createPortal(<h2>App H2</h2>, document.querySelector("#why"))}{/* 2.Modal组件 */}<Modal><h2>我是标题</h2><p>我是内容, 哈哈哈</p></Modal></div>)}
}export default App

4.Fragment的使用

在之前的开发中,我们总是在一个组件中返回内容时包裹一个div元素:

如果希望不渲染这层的div,就可以通过Fragment实现,Fragment 允许你将子列表分组,而无需向 DOM 添加额外节点;

React还提供了Fragment的短语法,看起来像空标签 <> </>;
但是,如果我们需要在Fragment中添加key,那么就不能使用短语法;
import React, { PureComponent, Fragment } from 'react'export class App extends PureComponent {constructor() {super() this.state = {sections: [{ title: "哈哈哈", content: "我是内容, 哈哈哈" },{ title: "呵呵呵", content: "我是内容, 呵呵呵" },{ title: "嘿嘿嘿", content: "我是内容, 嘿嘿嘿" },{ title: "嘻嘻嘻", content: "我是内容, 嘻嘻嘻" },]}}render() {const { sections } = this.statereturn (<><h2>我是App的标题</h2><p>我是App的内容, 哈哈哈哈</p><hr />{sections.map(item => {return (<Fragment key={item.title}><h2>{item.title}</h2><p>{item.content}</p></Fragment>)})}</>)}
}export default App

5.StrictMode

StrictMode 是一个用来突出显示应用程序中潜在问题的工具:

  • 与 Fragment 一样,StrictMode 不会渲染任何可见的 Ui
  • 它为其后代元素触发额外的检查和警告
  • 严格模式检查仅在开发模式下运行; 它们不会影响生产构建

StrictMode检查项:

  • 识别不安全的生命周期
  • 使用过时的ref API
  • 检查意外的副作用
  • 使用废弃的findDOMNode方法
  • 检测过时的context APi
import React, { PureComponent, StrictMode } from 'react'
// import { findDOMNode } from "react-dom"
import Home from './pages/Home'
import Profile from './pages/Profile'export class App extends PureComponent {render() {return (<div><StrictMode><Home/></StrictMode><Profile/></div>)}
}export default App

http://www.yayakq.cn/news/957249/

相关文章:

  • 专门做单页的网站seo专业培训seo专业培训
  • 商业网站开发模式郑州勘察设计信息网
  • 广东微信网站制作公司哪家好做包装设计的网站有哪些
  • 手机免费做网站怎么做网站做企业网站公司报价
  • 做设计有必要买素材网站会员吗做网站哪个好
  • 专业的单位网站建设酒厂网站源码
  • 江门东莞网站建设世界杯比赛系统网页设计作业
  • 网站制作专业吗中国少数民族网站建设
  • 一键免费建站上海最近三天的新闻
  • 怎样创造自己的网站网站服务器是主机吗
  • 网站建设系统开发东莞房价为什么那么高
  • 网站软件开发网站做seo第一步
  • 建设工程行业网站有哪些订餐网站开发方案
  • 网站备案单位的联系方式特产网站怎么做
  • 南沙手机网站建设网络营销的概念可译为
  • 怎么查询菠菜网站做没作弊服务器中安装网站
  • 网站建设属开票核定税种东莞品牌策划公司
  • 微信网站的建立广东如何做网站设计
  • 深泽网站制作网站设计和备案
  • 破解WordPress站点宿州高端网站建设公司哪家好
  • 建设软件网站爱建站小程序特点
  • 上海seo网站设计北京王府井半岛酒店
  • 中国网站设计国家免费技能培训
  • 网站变成了百度推广软件app研发
  • 深圳网站建设q.479185700惠安卓app下载安装
  • 唐山的谁会建网站网络热词
  • 网站网页设计的组成产品推广营销
  • 自己做网站要会什么百度关键词网站怎么做
  • 北京建设网站石家庄网站设计工作室
  • 构建网站需要什么意思wordpress管理邮件