返回首页

React 18 并发特性深度解析

2024年3月15日8 分钟阅读前端开发
ReactTypeScript性能优化
React 18 并发特性深度解析

React 18 并发特性深度解析

React 18 引入了革命性的并发渲染能力,让应用能够更好地处理复杂的 UI 更新任务。

什么是并发渲染?

并发渲染允许 React 同时准备多个版本的 UI,并根据优先级决定哪些更新需要立即呈现给用户。

useTransition 使用示例

import { useState, useTransition } from 'react';

function SearchComponent() {
  const [query, setQuery] = useState('');
  const [isPending, startTransition] = useTransition();

  const handleSearch = (value: string) => {
    setQuery(value);
    startTransition(() => {
      // 耗时操作不会阻塞 UI
      performExpensiveSearch(value);
    });
  };

  return (
    <div>
      <input value={query} onChange={(e) => handleSearch(e.target.value)} />
      {isPending && <Spinner />}
      <Results query={query} />
    </div>
  );
}

useDeferredValue 的应用场景

当需要在用户输入时保持界面响应性,同时执行耗时的数据过滤或计算时,useDeferredValue 是理想选择。

import { useState, useDeferredValue } from 'react';

function FilteredList({ items }: { items: string[] }) {
  const [filter, setFilter] = useState('');
  const deferredFilter = useDeferredValue(filter);

  const filteredItems = items.filter(item =>
    item.toLowerCase().includes(deferredFilter.toLowerCase())
  );

  return (
    <div>
      <input
        value={filter}
        onChange={(e) => setFilter(e.target.value)}
        placeholder="搜索..."
      />
      <ul>
        {filteredItems.map(item => (
          <li key={item}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

总结

React 18 的并发特性为构建更流畅的用户体验提供了强大支持,合理使用这些 API 可以显著提升应用性能。