91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React條件渲染實例分析

發布時間:2022-02-18 16:31:24 來源:億速云 閱讀:110 作者:iii 欄目:開發技術

本篇內容介紹了“React條件渲染實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

條件渲染可以將一個數組內的所有數據依次展示在界面上,常用場景:文字列表、商品列表。React 中的條件渲染就和在 JavaScript 中的條件語句一樣。使用 JavaScript 操作符如 if 或者 條件操作符 來創建渲染當前狀態的元素,并且讓 React 更新匹配的 UI

React條件渲染實例分析

先來看兩個組件:

function UserGreeting(props) {
 return 歡迎回來!;
}function GuestGreeting(props) {
 return 請先注冊。;
}

我們將創建一個 Greeting 組件,它會根據用戶是否登錄來顯示其中之一:

React 實例

function Greeting(props) {
 const isLoggedIn = props.isLoggedIn;
 if (isLoggedIn) {
   return ;
 }
 return ;
}

ReactDOM.render(
 // 嘗試修改 isLoggedIn={true}:
 false} />,
 document.getElementById('example')
);

元素變量

你可以使用變量來儲存元素。它可以幫助你有條件的渲染組件的一部分,而輸出的其他部分不會更改。 在下面的例子中,我們將要創建一個名為 LoginControl 的有狀態的組件。 它會根據當前的狀態來渲染 或 ,它也將渲染前面例子中的 。

React 實例

class LoginControl extends React.Component {
 constructor(props) {
   super(props);
   this.handleLoginClick = this.handleLoginClick.bind(this);
   this.handleLogoutClick = this.handleLogoutClick.bind(this);
   this.state = {isLoggedIn: false};
 }

 handleLoginClick() {
   this.setState({isLoggedIn: true});
 }

 handleLogoutClick() {
   this.setState({isLoggedIn: false});
 }

 render() {
   const isLoggedIn = this.state.isLoggedIn;

   let button = null;
   if (isLoggedIn) {
     button = ;
   } else {
     button = ;
   }

   return (
                   {button}
        );
 }
}

ReactDOM.render(
 ,
 document.getElementById('example')
);

與運算符 &&

你可以通過用花括號包裹代碼在 JSX 中嵌入任何表達式 ,也包括 JavaScript 的邏輯與 &&,它可以方便地條件渲染一個元素。

React 實例

function Mailbox(props) {
 const unreadMessages = props.unreadMessages;
 return (
        Hello!     {unreadMessages.length > 0 &&
                您有 {unreadMessages.length} 條未讀信息。
            }
    );
}

const messages = ['React', 'Re: React', 'Re:Re: React'];
ReactDOM.render(
 ,
 document.getElementById('example')
);

在 JavaScript 中,true && expression 總是返回 expression,而 false && expression 總是返回 false。 因此,如果條件是 true,&& 右側的元素就會被渲染,如果是 false,React 會忽略并跳過它。

三目運算符

條件渲染的另一種方法是使用 JavaScript 的條件運算符:

condition ? true : false。

在下面的例子中,我們用它來有條件的渲染一小段文本。

render() { const isLoggedIn = this.state.isLoggedIn; return (
The user is {isLoggedIn ? 'currently' : 'not'} logged in.
); }

同樣它也可以用在較大的表達式中,雖然不太直觀:

render() {
 const isLoggedIn = this.state.isLoggedIn;
 return (
        {isLoggedIn ? (
            ) : (
            )}
    );
}

阻止組件渲染

在極少數情況下,你可能希望隱藏組件,即使它被其他組件渲染。讓 render 方法返回 null 而不是它的渲染結果即可實現。 在下面的例子中, 根據屬性 warn 的值條件渲染。如果 warn 的值是 false,則組件不會渲染:

React 實例

function WarningBanner(props) {
 if (!props.warn) {
   return null;
 }

 return (
   "warning">
     警告!
    );
}

class Page extends React.Component {
 constructor(props) {
   super(props);
   this.state = {showWarning: true}
   this.handleToggleClick = this.handleToggleClick.bind(this);
 }

 handleToggleClick() {
   this.setState(prevState => ({
     showWarning: !prevState.showWarning
   }));
 }

 render() {
   return (
                            {this.state.showWarning ? '隱藏' : '顯示'}
               );
 }
}

ReactDOM.render(
 ,
 document.getElementById('example')
);

組件的 render 方法返回 null 并不會影響該組件生命周期方法的回調。例如,componentWillUpdate 和 componentDidUpdate 依然可以被調用。

“React條件渲染實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双流县| 绥棱县| 黔江区| 安顺市| 旬阳县| 静宁县| 喜德县| 永安市| 霸州市| 永顺县| 鸡东县| 营山县| 凉山| 广德县| 南宫市| 栾川县| 洛隆县| 平乡县| 黑山县| 武穴市| 双牌县| 山阳县| 合江县| 惠水县| 普安县| 罗田县| 岳西县| 海盐县| 兖州市| 抚州市| 威海市| 曲阳县| 自治县| 利川市| 肃南| 当雄县| 张家港市| 泉州市| 简阳市| 大同县| 德保县|