[英]What is the use of components in ReactJS instead of a single variable
開始研究ReactJS,看不懂組件的用途。 例如讓我們有一個組件:
var QuoteMaker = React.createClass({
render: function () {
return (
<blockquote>
<p>
The world is full of objects, more or less interesting; I do not wish to add any more.
</p>
<cite>
<a target="_blank"
href="#">
Douglas Huebler
</a>
</cite>
</blockquote>
);}});
為什么我們不能使用
var thisVar = (
<blockquote>
<p>
The world is full of objects, more or less interesting; I do not wish to add any more.
</p>
<cite>
<a target="_blank"
href="#">
Douglas Huebler
</a>
</cite>
</blockquote>
)
而不是那個組件。
React 允許您獲得組合方法。 因此,您可以在 react 中用作新的 balise 文本(組合)。 你可以重用這個組件,它在任何地方都會有相同的行為。
你可以。 那就好了。
你不能做的是有一個由動態數據構建的列表。 如果您想要多個人的多個引用怎么辦?
如果你想要一個隨機出現哪個引用的按鈕怎么辦?
如果您想要 Twitter 提要、博客滾動或評論部分怎么辦?
您不一定需要createClass
。 這是一種特別古老的看待事物的方式,您確實應該使用 Babel 構建管道; 句號。
你可以簡單地說:
const Quote = (props) => (
<blockquote>
<p>{ props.quote }</p>
<cite >{ props.author }</cite>
</blockquote>
);
ReactDOM.render(<Quote quote="..." author="..." />, rootEl);
現在,您可以愉快地構建隨機生成器、報價 API、報價編輯器或其他任何東西。 該組件做它應該做的事情,它依靠外部世界的輸入來做它不應該做的事情。
這樣,您在示例中可以創建函數或無狀態組件,我們可以在其中使用可以從父對象傳遞的props
對象。
const Component = (props) => {
//access to props
}
類組件允許存儲他們自己的狀態並使用它來重新渲染組件,通過this.setState()
函數:
class Component extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
//access to both state and props
}
為什么我們必須使用組件而不是 js 對象? 因為 React 有它自己的 DOM - virtual DOM
,它監聽變化並重新渲染你的真實 DOM,你可以在任何地方重用或擴展這個組件,它的語義也很棒。
查看有關 React 組件的文檔。
組件有很多用途。 這些是少數:
正如我之前所說,組件在平面 html 上有很多用途,基本上這就是 ReactJS 作為基於組件的重點:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.