Я пытаюсь изучить React. Я уже хорошо разбираюсь в javascript. Я пытаюсь учиться, создавая небольшое приложение, которое в основном является диспетчером задач. В моем случае это касается предметов, связанных с продуктом. У меня есть скрипка, созданная здесь. Не могли бы вы взглянуть на то, как я составил код для реагирования и дайте мне знать, если это лучший подход к построению с компонентами/классами? Вы можете видеть, что у меня есть вложенные компоненты. Я не уверен, есть ли лучший способ сделать это.Learning React.js
И, наконец, я не создавал новую строку «add-item-row» каждый раз, когда пользователь нажимает на синюю кнопку «Добавить». В настоящий момент один отображается по умолчанию, но по умолчанию я не хочу показывать его. Я хочу создать созданную (add-item-row, div) только тогда, когда пользователь нажимает кнопку «Добавить».
Вот скрипка.
https://jsfiddle.net/j0mpsbh9/4/
<div id="app" class="container">
<script type="text/babel">
var AddItemWrapper = React.createClass({
render: function() {
return (
<div>
<div className="row">
<AppTitle />
<AddItemForm />
</div>
<AddItemRow />
</div>
);
}
});
var AppTitle = React.createClass({
render: function() {
return (
<div>
<h1>Grocery List</h1>
</div>
);
}
});
var AddItemForm =React.createClass({
render: function() {
return (
<div>
<div className="col-sm-6 col-lg-6">
<div className="form-group">
<label htmlFor="enter-grocery-item" className="sr-only">Enter Grocery Item</label>
<input type="text" className="form-control" id="enter-grocery-item" placeholder="Enter Grocery Item" />
</div>
</div>
<div className="col-sm-6 col-lg-6">
<button type="button" id="add" className="btn btn-block btn-info">Add <span className="glyphicons circle_plus"></span></button>
</div>
</div>
);
}
});
var AddItemRow =React.createClass({
render: function() {
return (
<div className="add-item-row">
<div className="row">
<div className="col-sm-12 grocery-items">
<div className="col-sm-6">
<div className="form-group">
<label htmlFor="grocery-item" className="sr-only">Grocery Item</label>
<input type="text" className="form-control" id="grocery-item" placeholder="" />
</div>
</div>
<div className="col-sm-6 center">
<button type="button" className="btn btn-blockx btn-warning"><span className="glyphicons pencil"></span></button>
<button type="button" className="btn btn-blockx btn-lgx btn-danger"><span className="glyphicons remove"></span></button>
<button type="button" className="btn btn-blockx btn-lgx btn-success"><span className="glyphicons thumbs_up"></span></button>
</div>
</div>
</div>
</div>
);
}
});
ReactDOM.render(
<AddItemWrapper />,
document.getElementById('app')
);
</script>
</div>
Вы должны использовать модули (например, webpack) для разделения компонентов/контейнеров на разные файлы. – jbpark