摘要:讓他增加一個(gè)內(nèi)部維持的狀態(tài)另外有一點(diǎn)需要注意,由于是無狀態(tài)組件,所以,無論是否變更,都會(huì)重新刷新這個(gè)組件。
4.1 什么是無狀態(tài)組件
在開發(fā)React組件的時(shí)候,大家可能會(huì)遇到就是我使用的這個(gè)組件純粹就是渲染使用,里面并沒有自己的狀態(tài)、方法、生命周期等等操作。
而為這種組件創(chuàng)建完整的實(shí)例有一種浪費(fèi)機(jī)器性能的感覺。
那么,讓我們來看看,如何創(chuàng)建一個(gè)easy react component。
新建一個(gè)文件noStateComponent.js,在里面寫入如下代碼:
import React from "react"; export default (props)=>{props.name}
接著修改index.js文件,導(dǎo)入這個(gè)無狀態(tài)組件
import React, { PureComponent } from "react"; import Content from "./content.js" import NoStateComponent from "./noStateComponent" export default class index extends PureComponent { ... render() { return (Hello world React!{this.state.name}); } }組件生成時(shí)間:{this.state.time}
{this.state.obj.join("
")}主體Children
刷新瀏覽器,你會(huì)看到無狀態(tài)組件成功渲染在界面上。
當(dāng)然并不是無狀態(tài)組件無法使用內(nèi)部狀態(tài),我們修改一下無狀態(tài)組件。讓他增加一個(gè)內(nèi)部維持的狀態(tài)
import React from "react"; export default function(props){ let lastTime = +new Date() return{props.name},lastTime:{lastTime}}
另外有一點(diǎn)需要注意,由于是無狀態(tài)組件,所以,無論props是否變更,都會(huì)重新刷新這個(gè)組件。請(qǐng)看以下代碼
import React from "react"; export default function(props){ let lastTime = +new Date() return{props.name},lastTime:{lastTime}} export default class Index extends React.PureComponent{ constructor(props){ super(props) } render () { let lastTime = +new Date() return{this.props.name},lastTime:{lastTime}} }
我們繼承的是React新的PureComponent,這個(gè)方法會(huì)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行淺層對(duì)比。
你可以通過注釋上面兩個(gè)export你會(huì)發(fā)現(xiàn),點(diǎn)擊按鈕之后,如果是無狀態(tài)組件,那么它將跟隨變動(dòng)而刷新。
如果是繼承PureComponent的,則沒有任何改變。
reflink:https://www.yodfz.com/detail/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110164.html
摘要:而主要被設(shè)計(jì)用于維持組件內(nèi)部私有狀態(tài)。初始化初始化需要在中進(jìn)行。對(duì)于的定義為請(qǐng)求修改某個(gè)數(shù)據(jù),而的實(shí)現(xiàn)則是將對(duì)變量的修改放入一個(gè)修改隊(duì)列中,在一個(gè)循環(huán)之后進(jìn)行批量更新結(jié)果深入點(diǎn)涉及的更新機(jī)制。推出了與版本之后推出來的就是為了解決這些問題的。 3.1 什么是state 我們要認(rèn)識(shí)到,React中的組件其實(shí)是一個(gè)函數(shù),所以state是函數(shù)內(nèi)部的私有變量,外部其他組件或者方法都是無法直接訪問...
摘要:哈哈,我理解,架構(gòu)就是骨架,如下圖所示譯年月個(gè)有趣的和庫(kù)前端掘金我們創(chuàng)辦的使命是讓你及時(shí)的了解開發(fā)中最新最酷的趨勢(shì)。 翻譯 | 上手 Webpack ? 這篇就夠了! - 掘金譯者:小 boy (滬江前端開發(fā)工程師) 本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者及出處。 原文地址:https://www.smashingmagazine.... JavaSrip... 讀 Zepto 源碼之代碼結(jié)構(gòu) - ...
摘要:無狀態(tài)組件和有狀態(tài)組件無狀態(tài)組件和有狀態(tài)組件,劃分依據(jù)是根據(jù)組件內(nèi)部是否維護(hù)。展示型組件和容器型組件展示型組件和容器型組件,劃分依據(jù)是根據(jù)組件的職責(zé)。 文:徐超,《React進(jìn)階之路》作者授權(quán)發(fā)布,轉(zhuǎn)載請(qǐng)注明作者及出處 React 深入系列2:組件分類 React 深入系列,深入講解了React中的重點(diǎn)概念、特性和模式等,旨在幫助大家加深對(duì)React的理解,以及在項(xiàng)目中更加靈活地使...
摘要:無狀態(tài)組件和有狀態(tài)組件無狀態(tài)組件和有狀態(tài)組件,劃分依據(jù)是根據(jù)組件內(nèi)部是否維護(hù)。展示型組件和容器型組件展示型組件和容器型組件,劃分依據(jù)是根據(jù)組件的職責(zé)。 React 深入系列,深入講解了React中的重點(diǎn)概念、特性和模式等,旨在幫助大家加深對(duì)React的理解,以及在項(xiàng)目中更加靈活地使用React。 React 組件有很多種分類方式,常見的分類方式有函數(shù)組件和類組件,無狀態(tài)組件和有狀態(tài)組件...
閱讀 695·2021-11-23 09:51
閱讀 3287·2019-08-30 15:54
閱讀 447·2019-08-30 15:52
閱讀 3121·2019-08-30 13:58
閱讀 2923·2019-08-30 13:53
閱讀 2691·2019-08-29 14:18
閱讀 2425·2019-08-27 10:54
閱讀 2372·2019-08-26 18:09