2015-12-07 3 views
0

Все:Как отделить часть JSX от визуализации функции

Я довольно новыми для React.js и просто использовать немного AngularJS, есть один вопрос о React.js:

В AngularJS, часть HTML обычно отделена от JS-кода в качестве шаблона, мне нравится этот способ, который делает код чистым, я задаю вопрос , если есть аналогичный способ, который я могу сделать в React или просто использовать функцию для применения this.state/this .props для части HTML?

Благодаря

+0

Если вы структурируете большинство своих компонентов, чтобы быть апатридом, это в значительной степени просто JSX и реквизиты. https://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components – Dylan

+0

И если вы действительно хотите отделить JSX, это просто javascript, поэтому вы всегда можете поместить это в отдельный файл и импортировать его в компонент. Не уверен, что это будет чище. – Dylan

+2

Я думаю, что вы принципиально расходитесь с React, если ваша цель состоит в том, чтобы отделить содержимое функции «render» от границ функции «render». – Tyrsius

ответ

1

render функция просто синхронная функция. Пока шаблон уже загружен чем-то, вы можете это сделать абсолютно.

//Some module that has loaded the HTML 
import jsxStore from 'jsxStore'; 

class SillyComponent extends React.Component { 
    render() { 
     return jsxStore.getSillyComponent(this.props, this.state); 
    } 
} 

Задача здесь будет обеспечение того, чтобы HTML загружается время этот вызов сделан, поскольку render не принимает асинхронные результаты. HTML должен быть загружен до, компонент пытается что-либо сделать.

Следует отметить, что вы боретесь с Реатом, делая это. Идея React для компонента - это автономный пакет кода и представления. Цель состоит в том, чтобы сохранить компонент в одном файле, чтобы вы могли сразу увидеть все это. Это отличается от фреймворков, таких как Angular намеренно. Если вам это не нравится, React не подходит для вас.

+0

Спасибо, в настоящее время я делаю визуализацию данных, для которой требуется много манипуляций с DOM (создайте сложную структуру DOM с тоннами стиля), я думал, что концепция компонента из React поможет, но когда придет к реальности, этого действительно трудно достичь. – Kuan

+1

Я не думаю, что есть что-то о визуализации данных и большом количестве манипуляций с DOM, что противоречит React. Вам придется приспособить свое мышление, потому что React сильно отличается от Angular. Если вы попытаетесь использовать React, как вы используете Angular, у вас будет плохое время. Даже те вещи, которые React хорошо подходят, будут сложными, если вы попытаетесь использовать его как Angular. – Tyrsius

+0

спасибо, знаете ли вы, есть ли какая-либо библиотека, можно делать операцию virtualDOM, например, в css(), append() и т. Д. JQuery? – Kuan

Смежные вопросы