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

上饶做网站哪家好哦天眼查询个人 企业查询

上饶做网站哪家好哦,天眼查询个人 企业查询,电子类网站模板,深圳如何优化React 18是React团队于2022年发布的一个重要版本,它引入了多项改进和新特性,在提升性能的同时也带来了一些使用上的变化。本文将全面介绍React 18的主要新特性,包括并发渲染、API更新、浏览器兼容性等重要内容,并通过代码示例说明…

React 18是React团队于2022年发布的一个重要版本,它引入了多项改进和新特性,在提升性能的同时也带来了一些使用上的变化。本文将全面介绍React 18的主要新特性,包括并发渲染、API更新、浏览器兼容性等重要内容,并通过代码示例说明其使用场景。

1. 并发渲染(Concurrent Rendering)

1.1. 并发模式基础

import { createRoot } from 'react-dom/client';// React 18新渲染API
const root = createRoot(document.getElementById('root'));
root.render(<App />);

变化说明:新的createRootAPI取代了原有的ReactDOM.render,这是启用所有并发特性的前提。

1.2. 过渡更新(Transition)

function SearchBox() {const [isPending, startTransition] = useTransition();const handleChange = (e) => {// 紧急更新:立即响应用户输入setInputValue(e.target.value);// 非紧急更新:标记为过渡更新startTransition(() => {setSearchQuery(e.target.value);});};return (<div>{isPending && <Spinner />}<SearchResults query={searchQuery} /></div>);
}

场景说明:适合搜索框、标签页切换等需要区分优先级更新的场景。

2. 自动批处理与手动控制

2.1. 自动批处理

// 所有场景下的更新都会被自动批处理
function handleClick() {setCount(c => c + 1);  // 不会立即重渲染setFlag(f => !f);      // 与上面的更新一起批处理
}

2.2. 手动控制:flushSync

import { flushSync } from 'react-dom';function handleClick() {// 立即执行更新flushSync(() => {setCount(c => c + 1);});// DOM此时已更新flushSync(() => {setFlag(f => !f);});
}

场景说明:flushSync适用于需要同步读取DOM的场景,如表单验证、动画触发等。

3. 严格模式(Strict Mode)更新

React 18增强了严格模式的行为:

<StrictMode><App />
</StrictMode>

新增行为

1. 组件会模拟卸载后重新挂载,测试effect清理函数是否正确;

2. 开发环境下会重复调用以下函数:

(1). 组件函数体

(2). 初始化state

(3). reducer函数

(4). 某些生命周期方法

场景说明:帮助发现组件中潜在的副作用问题,建议开发环境始终启用。

4. 新的API与语法变化

4.1. useId

const id = useId();  // 生成形如":r1:"的稳定ID

4.2. 组件可返回undefined

function Component() {// React 17会报错,React 18允许return undefined;
}

变化说明:现在组件可以安全返回null或undefined,与React元素类型保持一致。

5. 浏览器兼容性

React 18仅支持现代浏览器

1. 不再支持IE11;

2. 主要支持Chrome、Firefox、Edge、Safari的最近两个版本;

3. 需要Promise、Symbol、Object.assign等ES6特性;

兼容方案

<!-- 为旧版浏览器添加polyfill -->
<script src="https://cdn.polyfill.io/v3/polyfill.min.js"></script>

6. 服务端渲染改进

6.1. 流式SSR

const { pipe } = renderToPipeableStream(<App />, {onShellReady() {pipe(response);},onError(error) {console.error(error);response.statusCode = 500;pipe(response);}
});

6.2. 选择性Hydration

<Suspense fallback={<Spinner />}><Comments />
</Suspense>

场景说明:大型页面可以优先hydrate关键部分,非关键内容延迟处理。

7. 升级注意事项

1. TypeScript类型更新:需要@types/react和@types/react-dom更新到18.x版本;

2. 测试库适配:React Testing Library需要v13+版本;

3. 副作用处理:严格模式下的双重调用可能暴露effect清理问题;

4. CSS-in-JS方案:部分库需要更新以支持并发渲染;

8. 实际应用建议

1. 渐进式升级策略

// 可保留旧版渲染API(不启用新特性)
ReactDOM.render(<App />, root);// 逐步迁移到新版API
const root = createRoot(document.getElementById('root'));
root.render(<App />);

2. 性能优化组合

function App() {return (<Suspense fallback={<Loader />}><UserProfile /><startTransition><Comments /></startTransition></Suspense>);
}

3. 错误边界处理

class ErrorBoundary extends React.Component {componentDidCatch(error) {// React 18会提供更详细的错误信息logError(error);}
}

9. 结语

React 18通过并发渲染等创新带来了显著的性能提升,同时也引入了一些重要的变化和限制。开发者需要特别注意:

1. 现代浏览器支持要求;

2. 严格模式的新行为;

3. 状态批处理的变化;

4. 新API的适用场景;

合理运用过渡更新、Suspense等特性,可以构建出更加流畅的用户体验。建议在开发环境充分测试严格模式的警告,并在生产环境利用流式SSR等改进提升性能。


文章转载自:

http://qASkrJ33.zkqwk.cn
http://OzMIJATO.zkqwk.cn
http://30o7ixeq.zkqwk.cn
http://2Yrty0hp.zkqwk.cn
http://XwQP4Nta.zkqwk.cn
http://hbrZyntC.zkqwk.cn
http://mmErjJro.zkqwk.cn
http://UzNolpDt.zkqwk.cn
http://5dz2wBXX.zkqwk.cn
http://xaILg6D7.zkqwk.cn
http://0yWNQRDT.zkqwk.cn
http://3sIgGOE9.zkqwk.cn
http://VUsaEH6g.zkqwk.cn
http://0BcemLTl.zkqwk.cn
http://p6NjvEiv.zkqwk.cn
http://zNlVjpVK.zkqwk.cn
http://4UAFRdTv.zkqwk.cn
http://a2ivBjzA.zkqwk.cn
http://FYWLX1nW.zkqwk.cn
http://AVPb9wtU.zkqwk.cn
http://Oe5oq58j.zkqwk.cn
http://5jnBlAOS.zkqwk.cn
http://aQobZdSF.zkqwk.cn
http://7PTVBX9N.zkqwk.cn
http://unvaRlzb.zkqwk.cn
http://XIZHGFMD.zkqwk.cn
http://eYBRxNQV.zkqwk.cn
http://O4SFLFsp.zkqwk.cn
http://q0aYaGSJ.zkqwk.cn
http://9XjjVvkY.zkqwk.cn
http://www.dtcms.com/wzjs/658280.html

相关文章:

  • 静态网站 挂马毕节网站建设与对策分析
  • 帮朋友做网站人被备案了会有什么后果
  • ps做网站 大小wordpress主题不能用
  • 免费学做淘宝的网站眉县网站开发
  • 建设公司网站要注意什么dede网站404怎么做
  • 电商网站的二级怎么做wordpress插件 标签
  • 月子会所网站源码wordpress内置rest api
  • 福建建设厅网站首页咋做网站
  • 重庆网站建设优化排名工作总结2023年个人
  • 谁有人和兽做的网站?跑腿个人网站怎么做
  • 设计需要看的网站有哪些如何在电影网站中做淘客
  • 古建设计网站玉环市建设工程检测中心网站
  • 论坛的网站制作个人网站和企业网站的区别
  • 苏州网站建设 苏州网络推广专家如何看网站做的好坏
  • 有没有人做网站西安logo设计
  • 佛山南海区建设局网站淄博seo推广
  • 商城微网站开发微网站龙岩龙硿洞
  • 网站维护费用一年多少宁波网络营销推广制作
  • 网站买空间的价格怎么做网站推广
  • 快速开发网站的应用程序爱企查企业服务平台
  • 长沙网站制作收费明细表17做网站官网
  • 做网络销售哪些网站比较好南昌优化网站排名
  • 恒佳企划网站建设网站备案信息下载
  • 呼市赛罕区信息网站做一顿饭工作如何查找织梦网站后台
  • 服装网站设计策划seo查询百科
  • 阿里巴巴如何建设网站首页素马设计顾问讲解价格
  • 村镇建设年度报表登录网站建设专业网站公司
  • 怎样建立自己的销售网站哈尔滨seo搜索优化公司排名
  • 上海做网站的的公司有哪些大竹县国示建设专题网站
  • 小米wifi设置网址入口网站跨境电商平台排行榜前十名