react要怎麼讓子元件不渲染
react讓子元件不渲染的方法:1、透過「shouldComponentUpdate(nextProps,nextState){...}」實作父元件渲染,子元件不渲染;2、透過「PureComponent」方式讓子元件不渲染;3、引入memo,用memo把hooks包裹即可。
本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。
react怎麼讓子元件不渲染?
React 父元件重新渲染,子元件不需要渲染的三種效能最佳化方式(PureComponent,memo,shouldComponentUpdate);
//使用React普通函數時,可以使用兩種最佳化方式,PureComponent和shouldComponentUpdate
//shouldComponentUpdate
//shouldComponentUpdate class Foo extends Component { shouldComponentUpdate(nextProps,nextState){ if(nextProps.count===this.props.count){ //传入的count与组件当前props的count比较,count没改变,return false,不渲染 return false //不渲染 } return true; //渲染 } render() { console.log("组件渲染"); //可以看到,当父组件的name改变时,子组件不会打印,只有count改变,才会打印,优化性能 return null } } class App extends Component { state = { count: 0, name: 0 } render() { return ( <Fragment> <Foo count={this.state.count} ></Foo> <button onClick={() => { this.setState(() => ({ count:this.state.count+1 })) }}>加count</button> <button onClick={() => { this.setState(() => ({ name: this.state.count+1 })) }}>加name</button> </Fragment> ) } }
//PureComponent
//引入PureComponent import React, { Component, Fragment, PureComponent} from 'react'; //PureComponent,自动比较组件数据是否改变,注意只能比较一层,比如一个对象,对象中的属性改变,他不会重新渲染,只有对象改变,才重新渲染。 class Foo extends PureComponent { render() { console.log("组件渲染"); return null } } class App extends Component { state = { count: 0, name: 0 } render() { return ( <Fragment> <Foo count={this.state.count} ></Foo> <button onClick={() => { this.setState(() => ({ count:this.state.count+1 })) }}>加count</button> <button onClick={() => { this.setState(() => ({ name: this.state.count+1 })) }}>加name</button> </Fragment> ) } }
//hooks 獨有最佳化方式memo
//引入memo import React, { Component, Fragment, memo } from 'react'; //用memo把hooks包裹即可 const Foo = memo(function Foo(props) { console.log("组件渲染"); return <div>count:{props.count}</div> }) class App extends Component { state = { count: 0, name: 0 } render() { return ( <Fragment> <Foo count={this.state.count} ></Foo> <button onClick={() => { this.setState(() => ({ count:this.state.count+1 })) }}>加count</button> <button onClick={() => { this.setState(() => ({ name: this.state.count+1 })) }}>加name</button> </Fragment> ) } }
#學習:《react影片教學》
以上是react要怎麼讓子元件不渲染的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

不少用戶在玩win10的的一些遊戲的時候總是會遇到一些問題,比如說卡屏和花屏等等情況,這個時候我們是可以採用打開directplay這個功能來解決的,而且功能的操作方法也很簡單。 win10舊版元件directplay怎麼安裝1、在搜尋框裡面輸入「控制台」然後開啟2、檢視方式選擇大圖示3、找到「程式與功能」4、點選左側的啟用或關閉win功能5、選擇舊版這裡的勾選上就可以了

PHP、Vue和React:如何選擇最適合的前端框架?隨著互聯網技術的不斷發展,前端框架在Web開發中起著至關重要的作用。 PHP、Vue和React作為三種代表性的前端框架,每一種都具有其獨特的特徵和優勢。在選擇使用哪種前端框架時,開發人員需要根據專案需求、團隊技能和個人偏好做出明智的決策。本文將透過比較PHP、Vue和React這三種前端框架的特徵和使

win10舊版元件是需要使用者自己去設定裡面打開的,因為很多的元件平時都是預設關閉的狀態,首先我們需要進入到設定裡面,操作很簡單,跟著下面的步驟來就可以了win10舊版元件在哪裡開啟1、點選開始,然後點選「win系統」2、點選進入控制台3、再點選下面的程式4、點選「啟用或關閉win功能」5、在這裡就可以選擇你要的開啟了

Angular框架中元件的預設顯示行為不是區塊級元素。這種設計選擇促進了元件樣式的封裝,並鼓勵開發人員有意識地定義每個元件的顯示方式。透過明確設定CSS屬性 display,Angular組件的顯示可以完全控制,從而實現所需的佈局和響應能力。

Java框架與React框架的整合:步驟:設定後端Java框架。建立專案結構。配置建置工具。建立React應用程式。編寫RESTAPI端點。配置通訊機制。實戰案例(SpringBoot+React):Java程式碼:定義RESTfulAPI控制器。 React程式碼:取得並顯示API回傳的資料。

Vue.js適合中小型項目和快速迭代,React適用於大型複雜應用。 1)Vue.js易於上手,適用於團隊經驗不足或項目規模較小的情況。 2)React的生態系統更豐富,適合有高性能需求和復雜功能需求的項目。

Vue組件開發:彈跳窗組件實作方法引言:在前端開發中,彈窗組件是一種常見且重要的組件類型。它可以用來在網頁中展示一些提示訊息、確認或輸入框等互動性內容。本文將介紹如何使用Vue框架開發一個簡單的彈跳窗組件,並提供具體的程式碼範例。一、組件結構設計在設計彈窗組件的結構時,我們需要考慮以下幾個要素:彈跳窗標題:用來顯示彈跳窗的標題資訊。彈跳窗內容:用來展示彈跳窗的具體內容。彈

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。
