我想在React中使用分頁插件。 jQuery中原來使用:使用jQuery插件Pagination.js和React
$('#demo').pagination({
dataSource: [1, 2, 3, 4, 5, 6, 7, 8],
pageSize: 3,
callback: function (data, pagination) {
// template method of yourself
var html = template(data);
$("#dataContainer").html(html);
}
});
我想在使用它反應了搜索功能。數據源將根據搜索結果進行更改。另外DOM包含的搜索結果會改變。
這是搜索結果的容器:
<MovieList data={this.state.searchList} handleAdd={this.addList}/>
searchList將作爲狀態更新。
這是MovieList組分:
var MovieList = React.createClass({
renderTemplate: function (data) {
return data.map(function (movie) {
return <Movie data={movie} onAdd={this.props.handleAdd}>
</Movie>;
});
},
componentDidMount: function() {
$(ReactDOM.findDOMNode(this)).pagination({
dataSource: this.props.data,
pageSize: 6,
callback: function (data, pagination) {
// template method of yourself
var html = this.renderTemplate(data);
$(this.children).html(html);
}
}).bind(this);
},
componentWillUnmount: function() {
$(ReactDOM.findDOMNode(this)).pagination('destroy');
},
render: function() {
return (
<div className={this.props.className}>
<div className="data-container"></div>
</div>
);
}
});
之後將其綁定在componentDidMount,我應該用componentWillReceiveProps或其他生命週期的方法來更新它?
關注的問題:
我完全新的反應。我不知道如何使用React庫。從在線資源中,我發現我應該安裝React組件npm。我從來沒有用過npm。在我的項目中,我使用了Django + React。我也只使用經典的方法來包含這樣的參考:
<script src={% static 'pages/js/jquery-1.11.1.min.js' %}></script>
<script src={% static 'pages/bootstrap/js/bootstrap.min.js' %}></script>
<script src="https://unpkg.com/[email protected]/dist/react.js"></script>
<script src="https://unpkg.com/[email protected]/dist/react-dom.js"></script>
<script src="https://unpkg.com/[email protected]/browser.min.js"></script>
我應該在哪裏安裝npm install React庫?如果我不想更改我的項目的當前結構,如何使用它?
雖然我可以選擇一個陣營基於分頁庫,具有jQuery代碼進入了'componentWillReceiveProps'生命週期將使其工作,也許與jQuery代碼之前'if'語句,以便分頁是重新只有道具不同時才初始化。我不確定的一件事是,如果該模板渲染將與React一起使用,那麼當您使用jquery更新DOM時,您將會離開React環境。 – dzv3
我決定使用React庫。請看我的後續問題。謝謝! – JoyceLee
這裏有一個有趣的[閱讀](https://facebook.github.io/react/blog/2016/07/22/create-apps-with-no-configuration.html),可以讓你開始使用純粹的React項目,直接來自React的創造者。 – dzv3