มีอะไรใหม่ใน React 18?

ต่อไปนี้คือฟีเจอร์ React 3 แบบที่จะเกิดขึ้นที่คุณควรตื่นเต้น

ภาพถ่ายโดย Sean Oulashin บน Unsplash

ทีม React ได้ประกาศแผนการที่จะปล่อย React 18 เวอร์ชันใหม่ ตอนนี้อยู่ในช่วงเบต้า ในฐานะนักพัฒนา React ฉันต้องการทราบคุณสมบัติใหม่

ในบทความนี้ เราจะมาพูดคุยกันว่า React 18 จะเปลี่ยนชีวิตเราให้ง่ายขึ้นได้อย่างไร

รูท API ใหม่

รูท API เป็นตัวชี้ไปยังโครงสร้างข้อมูลระดับบนสุดที่ React ใช้เพื่อติดตามทรีที่จะแสดงผล ตอนนี้ React มีรูท API สองตัว:

  • API รูตเก่าดั้งเดิม — API ที่มีอยู่ด้วยReactDOM.render. API นี้จะถูกเลิกใช้หลังจาก React ออกใหม่
  • รูท APIใหม่ — รูท API ใหม่พร้อมReactDOM.createRoot. รูทนี้ใช้งานได้ใน React 18 พร้อมการปรับปรุงและฟีเจอร์ใหม่ทั้งหมด

import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('app'));

import ReactDOM from 'react-dom';
import App from './App';

// create a root
const root = ReactDOM.createRoot(document.getElementById('app'));

// render an element to the root
root.render(<App />);

แบทช์อัตโนมัติ

แบทช์คือการอัพเดตสถานะ React หลายรายการในการเรนเดอร์ซ้ำครั้งเดียว

function Counter() {
  const [count, setCount] = useState(0);
  const [disabled, setDisabled] = useState(false);

  function handleClick() {
    setCount(c => c + 1); // does not re-render yet
    setDisabled(f => !f); // does not re-render yet
    // React will only re-render once (that's batching!)
  }

  return (
    <div>
      <h1>{count}</h1>
      <button disabled={disabled} onClick={handleClick}>
        Increment
      </button>
    </div>
  );
}

ซึ่งจะช่วยหลีกเลี่ยงการแสดงผลซ้ำที่ไม่จำเป็นและปรับปรุงประสิทธิภาพของเรา แล้วคำขอแบบอะซิงโครนัสล่ะ? React 17 ไม่ได้แบทช์และทำการอัพเดตอิสระสองครั้ง

function Counter() {
  const [count, setCount] = useState(0);
  const [disabled, setDisabled] = useState(false);

  function handleClick() {
    doPostRequest()
      .then(() => {
        setCount(c => c + 1); // does re-render
        setDisabled(f => !f); // does re-render
      })
  }

  return (
    <div>
      <h1>{count}</h1>
      <button disabled={disabled} onClick={handleClick}>
        Increment
      </button>
    </div>
  );
}

startTransition API

ก่อนที่เราจะพูดถึงสิ่งที่startTransitionเป็นอยู่ เรามาตรวจสอบว่าเรามีการอัพเดทสถานะประเภทใดบ้างใน React:

  • การอัปเดตด่วน — การโต้ตอบโดยตรง เช่น การพิมพ์ การคลิก การแตะ และอื่นๆ เมื่อมันเกิดขึ้น เราคาดหวังการตอบสนองทันที มิฉะนั้น เราจะคิดว่ามีบางอย่างผิดปกติกับแอปของเรา
  • การอัปเดตการเปลี่ยน — การเปลี่ยน UI จากมุมมองหนึ่งไปอีกมุมมองหนึ่ง เราสามารถอธิบายได้เมื่อเราไม่คิดว่าจะเห็นการเปลี่ยนแปลงใดๆ ระหว่างกลางบน UI

setInputValue(inputValue); // Urgent: show what was typed
setSearchQuery(inputValue); // // Not urgent: show filtered list

ใน React 18 มันถูกแก้ไขโดยstartTransitionAPI:

import { startTransition } from 'react';

setInputValue(input);

startTransition(() => {
  // Transition: show filtered list
  setSearchQuery(input);
});

บทสรุป

ขอบคุณสำหรับการอ่าน ฉันหวังว่าคุณพบว่าชิ้นนี้มีประโยชน์ มีความสุขในการเข้ารหัส!

ทรัพยากร

Suggested posts

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

ตัดตอนมาจาก Small, Sharp Software Tools โดย Brian P. Hogan

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้

หลีกเลี่ยงผลร้ายของโรคหลอดเลือดสมอง: เรียนรู้จากการเดินทางของครอบครัว

หลีกเลี่ยงผลร้ายของโรคหลอดเลือดสมอง: เรียนรู้จากการเดินทางของครอบครัว

บทนำ โรคหลอดเลือดสมองเป็นเหตุฉุกเฉินทางการแพทย์ที่สามารถส่งผลกระทบต่อทุกคนได้ตลอดเวลา เกิดขึ้นเมื่อการไหลเวียนของเลือดไปยังส่วนหนึ่งของสมองหยุดชะงัก นำไปสู่การสูญเสียการทำงานของสมองอย่างกะทันหัน

Related posts

สรรพนามน่ากลัวมาก

มันทำให้ฉันประหลาดใจ ทันใดนั้นมันก็เกิดขึ้นบ่อยๆ มันอยู่กลางทางอีกครั้ง <ไม่ ไม่ใช่คนในมหาสมุทรแปซิฟิก คุณเป็นสีน้ำตาลแดง คนที่งานคาร์นิวัล> ทุกพาดหัวข่าวดัง…..

การเรียนรู้ในสัปดาห์การทำงานมีความสำคัญมากกว่าที่คุณคิด

การเรียนรู้ในสัปดาห์การทำงานมีความสำคัญมากกว่าที่คุณคิด

เรามักพบปัญหาในการดำเนินการตามสิ่งที่เรารู้ว่าดีสำหรับเรา ตั้งแต่การบอกคนสำคัญว่าเรารักเขาไปจนถึงการจดจำการพูดคุยอย่างโจรสลัด จะมีคนที่อ้างว่าเหตุการณ์หนึ่งวัน สัปดาห์ หรือเดือนไม่จำเป็น เพราะพวกเขาทำสิ่งเหล่านั้นอยู่แล้ว

3 วิธีที่พิสูจน์แล้วในการพัฒนาทักษะการเขียนของคุณ

ประโยชน์ของการเขียนและกลยุทธ์ที่จะช่วยให้คุณทำได้

3 วิธีที่พิสูจน์แล้วในการพัฒนาทักษะการเขียนของคุณ

ในปี 2022 ด้วยการเปิดตัว GPT-3 ทักษะการเขียนดูเหมือนจะมีความสำคัญน้อยลง ด้วย AI คนที่เขียนไม่ดีก็สามารถสร้างพนักงานที่มีคุณภาพได้เช่นกัน

วิธีช่วยโลกและสร้างรายได้

วิธีช่วยโลกและสร้างรายได้

กี่ครั้งแล้วที่คุณทิ้งขวดพลาสติก เหยือกแก้ว กระป๋องอะลูมิเนียม หรือบรรจุภัณฑ์พลังงานสีเขียวโดยไม่คิดซ้ำสอง กี่ครั้งแล้วที่คุณอยากได้อะไรตอบแทนจากการรีไซเคิลมัน? ถ้าคุณเป็นเหมือนคนส่วนใหญ่ คำตอบคือหลายครั้ง การรีไซเคิลมักถูกมองว่าเป็นเรื่องยุ่งยาก เป็นงานบ้าน หรือเป็นหน้าที่ที่ไม่ก่อให้เกิดประโยชน์ในทันทีหรือจับต้องได้