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, время: 10:37. |