3 回答

TA貢獻1828條經驗 獲得超4個贊
說說React
一個組件,有自己的結構,有自己的邏輯,有自己的樣式,會依賴一些資源,會依賴某些其他組件。比如日常寫一個組件,比較常規的方式:
- 通過前端模板引擎定義結構
- JS文件中寫自己的邏輯
- CSS中寫組件的樣式
- 通過RequireJS、SeaJS這樣的庫來解決模塊之間的相互依賴,
那么在React中是什么樣子呢?
結構和邏輯
在React的世界里,結構和邏輯交由JSX文件組織,React將模板內嵌到邏輯內部,實現了一個JS代碼和HTML混合的JSX。
結構
在JSX文件中,可以直接通過 React.createClass 來定義組件:
var CustomComponent = React.creatClass({
render: function(){
return (<div className="custom-component"></div>);
}
});
通過這種方式可以很方便的定義一個組件,組件的結構定義在render函數中,但這并不是簡單的模板引擎,我們可以通過js方便、直觀的操控組件結構,比如我想給組件增加幾個節點:
var CustomComponent = React.creatClass({
render: function(){
var $nodes = ['h','e','l','l','o'].map(function(str){
return (<span>{str}</span>);
});
return (<div className="custom-component">{$nodes}</div>);
}
});
通過這種方式,React使得組件擁有靈活的結構。那么React又是如何處理邏輯的呢?
邏輯
寫過前端組件的人都知道,組件通常首先需要相應自身DOM事件,做一些處理。必要時候還需要暴露一些外部接口,那么React組件要怎么做到這兩點呢?
事件響應
比如我有個按鈕組件,點擊之后需要做一些處理邏輯,那么React組件大致上長這樣:
var ButtonComponent = React.createClass({
render: function(){
return (<button>屠龍寶刀,點擊就送</button>);
}
});

TA貢獻1817條經驗 獲得超6個贊
const bordercolors=["red", "blue", "yellow"]
{bordercolors.map((value, index)=>
<option key={index}>{index}:{value}</option>
)}

TA貢獻1765條經驗 獲得超5個贊
eact refs 可以接受一個字符串對象嗎 處理 React 組件之間的交流方式,主要取決于組件之間的關系,然而這些關系的約定人就是你。我不會講太多關于 data-stores、data-adapters 或者 data-helpers 之類的話題。我下面只專注于 React 組件本身的
添加回答
舉報