Angular vs react+flux (помогите выбрать)
Уже как дня 3 гуглю и не могу выбрать - что же учить?
Я пересмотрел кучу конференций по ангуляру и реакту, но так и не выбрал.. Angular vs react + flux? Ваш опыт, советы? p.s я их не сравниваю, а лишь хочу понять, что лучше будет учить первым?=) |
Цитата:
Цитата:
Реакт новый, коммьюнити меньше, реализует новейшие смелые архитектурные идеи и отлично дружит с ES6, сугубо модулен. Вообще, взялся бы хоть что-то выучить - куда быстрее было бы. |
Цитата:
Цитата:
|
React, потому, что быстрее развивается.
Возможно в будущем Ангуляр 2 будет мегакрут, но пока до него далеко. |
Safort, все круто, только jsx пугает немного=)
|
Lemme,
это только поначалу) |
Цитата:
"use strict"; import React from 'react'; class Hello extends React.Component { render() { return <div>Hello, { this.props.name }</div> } } React.render(<Hello name="World" />, document.body); Аж в дрожь бросает =) |
Если что, JSX - всего лишь синтаксический сахар, диалект ES, предлагаемый к использованию вместе с реактом. Можно и без него:
import React from "react"; class HelloMessage extends React.Component { render() { return React.createElement("div", null, "Hello ", this.props.name); } } React.render(React.createElement(HelloMessage, {name: "World"}), document.body); Но лучше таки привыкай, там ничего сложного нет) Да, еще, касательно того кода, а не задачи: "use strict" в модулях ES6 писать нет смысла, они и так по дефолту в строгом режиме работают. |
По мне так jsx это, как бы по приличнее, плохо. Сам реакт не плох, есть такая штука react template, позволяет избавиться от jsx
|
Цитата:
|
Erolast, да эт я видел, но я уже привык =). Только одно мне непонятно, например.
Цитата:
Есть компонент..... Да пусть новости :D <div> <article> <h2>News item #1</h2> <p>Lorem ipsum dolor sit amet</p> </article> <article> <h2>News item #2</h2> <p>Lorem ipsum dolor sit amet</p> </article> </div> Вот вывод этого дела (код не проверял, поэтому вдруг не работает, но, по идее, должен:D) import React from 'react'; class NewsList extends React.Component { // 1) - Где это должно быть? =) По сути, оно не в рендере, поэтому можно и сюда запихнуть, но все же?=) getDataFromServer() { return [ {id: 1, title: 'News item #1', snippet: 'Lorem ipsum dolor sit amet'}, {id: 2, title: 'News item #2', snippet: 'Lorem ipsum dolor sit amet'} ]; } renderItem(item) { return ( <article key={item.id}> <h2>{item.title}</h2> <p>{item.snippet}</p> </article> ); } render() { let items = this.getDataFromServer().map(this.renderItem); return ( <div>{items}</div> ); } } // где то там, из компонентов собираем страничку ;) export default NewsList; Вопросы: 1) По сути, в этом классе должна быть только манипуляция DOM, да? Т.е данные с сервера я должен тащить уже с помощью flux, там же и обрабатывать, а тут только выводить. 2) Допустим, есть сущность "Новости", которая содержит всю инфу о новостях. Должен ли быть один компонент News, а в нем уже вывод полной новости и списка новостей? Либо это уже два разных компонента? Пока все=) p.s по сути, данный тред себя изжил, вопрос на него был получен, пора апать React'а тред ;) p.s уехал, вернусь чарез часик, надеюсь на кучу постов с ответами :D |
Цитата:
ни то ни другое :) http://javascript.ru/forum/offtopic/...tml#post369258 |
nerv_, топик уже читал=)
Цитата:
|
Цитата:
|
tsigel, ага, именно это меня и смутило в jsx ;D
Но если смотреть на React, как на "представление", то jsx вполне разумен и даже удобен, ибо видно, за что отвечает этот класс и.т.д Но опять же, если класс будет раза в 2-3 больше, чем этот. http://javascript.ru/forum/misc/5799...tml#post386417, а он обязательно будет, то будет громоздко:( |
Цитата:
В след. раз я не буду настолько любезен указывать на очевидные вещи. Цитата:
|
nerv_, да, имел ввиду пост).
|
Lemme,
Цитата:
{ render: () { return ( <div> {this.getHeader()} {this.getContent()} {this.getFooter()} </div> ) } } Когда методы умещаются в 7-8 строк, то получается давольно аккуратный код, но смысл шаблона в том чтобы увидеть хтмл структуру кода, а в таком варианте она полностью теряется. |
Цитата:
|
Цитата:
Цитата:
Цитата:
Банальный пример из Jade //- navigation.jade mixin navigation(items) .navigation each item in items a.navigation__link(href=item.url) = item.title //- header.jade include path/to/navigation-mixin mixin header() .header +navigation([ {url: '#/page/1', title: 'link #1'}, {url: '#/page/2', title: 'link #2'}, {url: '#/page/3', title: 'link #3'}, {url: '#/page/4', title: 'link #4'}, {url: '#/page/5', title: 'link #5'} ]); Цитата:
Но помимо всего, я согласен, что jsx ужасен :agree: Цитата:
|
Реакт, конечно же. Ангуляр - это тромознутое нечто, заставляющее плясать с бубном при любой нестандартной ситуации.
|
Цитата:
![]() |
Ну вот и порешали. Все говно. :)
|
tsigel, нет, всё круто
|
Часовой пояс GMT +3, время: 04:32. |