Показать сообщение отдельно
  #11 (permalink)  
Старый 30.08.2015, 10:50
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Erolast, да эт я видел, но я уже привык =). Только одно мне непонятно, например.
Цитата:
Да, еще, касательно того кода, а не задачи: "use strict" в модулях ES6 писать нет смысла, они и так по дефолту в строгом режиме работают.
Буду знать =)

Есть компонент..... Да пусть новости
<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>


Вот вывод этого дела (код не проверял, поэтому вдруг не работает, но, по идее, должен)
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 уехал, вернусь чарез часик, надеюсь на кучу постов с ответами

Последний раз редактировалось Lemme, 30.08.2015 в 10:53.
Ответить с цитированием