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

云南网络公司网站宝塔一键部署wordpress最新版

云南网络公司网站,宝塔一键部署wordpress最新版,wordpress cdn无法登陆,seo对网店推广的作用1. useImperativeHandle 在react中父组件可以通过forwardRef将ref转发到子组件#xff1b;子组件拿到父组件创建的ref#xff0c;绑定到自己的某个元素#xff1b; forwardRef的做法本身没有什么问题#xff0c;但是我们是将子组件的DOM直接暴露给了父组件#xff0c;某下…1. useImperativeHandle 在react中父组件可以通过forwardRef将ref转发到子组件子组件拿到父组件创建的ref绑定到自己的某个元素 forwardRef的做法本身没有什么问题但是我们是将子组件的DOM直接暴露给了父组件某下情况可能造成不可控的问题 父组件可以拿到DOM后进行任意的操作 。 通过 useImperativeHandle 可以只暴露固定的操作 通过useImperativeHandle的Hook将传入的ref和useImperativeHandle第二个参数返回的对象绑定到了一起在父组件调用子组件的方法时通过自定义实现让父组件使用返回的对象 import React, { memo, useRef, forwardRef, useImperativeHandle } from reactconst HelloWorld memo(forwardRef((props, ref) {const inputRef useRef()// 子组件对父组件传入的ref进行处理useImperativeHandle(ref, () {return {focus() {console.log(focus)inputRef.current.focus()},setValue(value) {inputRef.current.value value}}})return input typetext ref{inputRef}/ }))const App memo(() {const titleRef useRef()const inputRef useRef()function handleDOM() {// console.log(inputRef.current)inputRef.current.focus()// inputRef.current.value inputRef.current.setValue(哈哈哈)}return (divh2 ref{titleRef}哈哈哈/h2HelloWorld ref{inputRef}/button onClick{handleDOM}DOM操作/button/div) })export default App2. useLayoutEffect useLayoutEffect看起来和useEffect非常的相似事实上他们也只有一点区别而已: useEffect会在渲染的内容更新到DOM上后执行不会阻塞DOM的更新 useLayoutEffect会在渲染的内容更新到DOM上之前执行会阻塞DOM的更新 如果我们希望在某些操作发生之后再更新DOM那么应该将这个操作放到useLayoutEffect。 3. redux hooks redux开发中为了让组件和redux结合起来我们使用了react-redux中的connect 这种方式必须使用高阶函数结合返回的高阶组件 必须编写mapStateToProps和 mapDispatchToProps映射的函数 Redux7.1开始提供了Hook的方式我们再也不需要编写connect以及对应的映射函数 useSelector的作用是将state映射到组件中 参数一将state映射到需要的数据中 参数二可以进行比较来决定是否组件重新渲染react-redux中提供了shallowEqual进行比较 useDispatch 直接获取dispatch函数之后在组件中直接使用即可 import React, { memo } from react import { useSelector, useDispatch, shallowEqual } from react-redux import { addNumberAction, changeMessageAction, subNumberAction } from ./store/modules/counter// memo高阶组件包裹起来的组件有对应的特点: 只有props发生改变时, 才会重新渲染 const Home memo((props) {const { message } useSelector((state) ({message: state.counter.message}), shallowEqual) // shallowEqual优化只有当组件内使用的state.message改变时重新加载 不会由于父组件更新了state的其他参数重新渲染const dispatch useDispatch()function changeMessageHandle() {dispatch(changeMessageAction(你好啊, 师姐!))}console.log(Home render)return (divh2Home: {message}/h2button onClick{e changeMessageHandle()}修改message/button/div) })const App memo((props) {// 1.使用useSelector将redux中store的数据映射到组件内const { count } useSelector((state) ({count: state.counter.count}), shallowEqual)// 2.使用dispatch直接派发actionconst dispatch useDispatch()function addNumberHandle(num, isAdd true) {if (isAdd) {dispatch(addNumberAction(num))} else {dispatch(subNumberAction(num))}}console.log(App render)return (divh2当前计数: {count}/h2button onClick{e addNumberHandle(1)}1/buttonbutton onClick{e addNumberHandle(6)}6/buttonbutton onClick{e addNumberHandle(6, false)}-6/buttonHome//div) })export default App4. useTransition 返回一个状态值表示过渡任务的等待状态以及一个启动该过渡任务的函数。 打个比方搜索过滤在输入框输入时对于上w条数据时会存在卡顿是由于在搜索的输入事件中event.target.value更新与过滤出来的数据同时更新导致输入存在卡顿原因。通过useTransition 在告诉react对于某部分任务的更新优先级较低可以稍后进行更新。 useTransition返回两个参数。 import React, { memo, useState, useTransition } from react import namesArray from ./namesArrayconst App memo(() {const [showNames, setShowNames] useState(namesArray)const [ pending, startTransition ] useTransition()function valueChangeHandle(event) {startTransition(() {const keyword event.target.valueconst filterShowNames namesArray.filter(item item.includes(keyword))setShowNames(filterShowNames)})}return (divinput typetext onInput{valueChangeHandle}/h2用户名列表: {pending spandata loading/span} /h2ul{showNames.map((item, index) {return li key{index}{item}/li})}/ul/div) })export default App
http://wiki.neutronadmin.com/news/14781/

相关文章:

  • 网站域名和网站网址吗上海企业网站模板建站
  • 四平市建设局网站瑞安app开发
  • 如何自己做电影网站韶关最新消息
  • 网站构成要素湖滨区建设局网站
  • 设计公司网站建设模板图什么网站做电子相册比加快
  • 手机壁纸网站源码wordpress自动文章排版
  • 方维网站建设南宁网站建设招聘
  • 老网站用新域名怎样建设营销型网站
  • 成都 网站建设培训如何建设一个读书的网站
  • 公众号排名优化seo关键词的选择步骤
  • wordpress首页阅读全文关键词优化工具有哪些
  • 免费金融发布网站模板下载跨境电商亚马逊开店需要多少钱
  • 兰山区网站建设推广网上开店准备工作
  • 第三方网站开发优缺点自己做网站系统教程
  • 长沙网站建设公司有哪些搬瓦工512m内存wordpress
  • 北京工信部查网站备案网页版崩坏星穹铁道
  • 园岭网站建设建筑工程网课视频
  • 保定网站推广网站开发设计工具
  • 响应式网站与自适应dede网站后台模板
  • 四川做网站设计的公司信阳优化公司
  • 秦皇岛网站搜索排名成都公司网站制作公司
  • 仪征建设局招投标网站网站 手机网站
  • 网络推广网站推广淘宝运营商上海电商网站设计
  • 企业网站优化多少钱ii6创建网站
  • 在putty做网站要拷贝什么昌平做网站
  • 怎么看网站是不是h5做的汕头网站建设设计
  • 禅城区网站建设虚拟主机怎么建网站
  • 建设淘宝网站的人员组织团队氛围建设 网站
  • 多用户网站制作重庆建设工程交易中心
  • 免费建站自助建站网站建设教程网站建设教程wordpress后台无法变中文