kobezzza,
Цитата:
Довольно интересный вариант, но, как мне кажется лучше собрать больше мнений, мб выяснятся какие-то +/- такого решения. Да-да, я намекаю на статью :) |
kobezzza,
Реакт это не шаблоны, а компоненты. HTML там только в самой начальной точке. Давай такой пример. var Btn = React.createClass({ propTypes: { value: React.PropTypes.string.isRequired, className: React.PropTypes.string.isRequired }, render: function () { return ( <div className={this.props.className}>{this.props.value}</div> ) } }); //React.PropTypes.string.isRequired - выдает ошибку, если мы забудем указать свойство var Board = React.createClass({ getInitialState: function() { return { className: "btn", value: "Кнопка" }; }, render: function () { return ( <Btn className={this.props.className} value={this.state.value} /> <Btn className="btn-my" value="submit" /> ) } }); Цитата:
|
Цитата:
Ну и я сейчас такой трюк юзаю с ангуляром на работе, как писал выше - оч удобно. Цитата:
Цитата:
1) Во первых SS может генерить любой текст и он точно также спокойно сгенерит текст с компонентом; 2) Это не только куча фишек, но и разделение сущностей, за которые не нужно платить, т.к. всё делается один раз на этапе сборки проекта. 3) Самое главное - это сейчас ну очень просто реализовать :) |
return Snakeskin('myFile');Меня пугает до усрачки... Подключение шаблонизатора мне видится для ... я даже не знаю для чего. Цитата:
value: React.PropTypes.string.isRequired,он тоже сгенерит? |
Цитата:
Цитата:
Цитата:
Вот например шаблон, генерирующий JS: #{template foo()} function some() { return #{1 + 2}; } var a = { bar: "#{'ffffuuuuuu'}" }; #{/} *** Вот ещё пример похожей схемы: Stylus и Rework, первый юзается для трансляции .styl в .css, а второй для .css в .сss (полифилы и т.д.) |
Хотел много чего написать, но напишу только одно. Не жалко времени, пофикси пересборку шаблонов, если возможно.
Цитата:
Цитата:
Если это критическая бага шаблонки, то вопрос снимается. Просто не понимаю, зачем нужен вотчер, если приходиться пересобирать все вручную. |
Стоп, я тебя не понял, какая бага?
Цитата:
Я объяснил ситуацию, привёл примеры и решения, что ты ещё хочешь то? {template base()} {block bar} {proto e()} 1 {/} {/} {/} {template child() extends base} {block bar} fffffuuuu {/} {/} Неужели ты не видишь, что в дочернем шаблоне ты переопределил блок bar и всё его старое содержимое было законно уничтожено. Если ты хочешь доопределить - то просто используй super {template child() extends base} {block bar} {super} fffffuuuu {/} {/} Это самый логичный способ. Есть ещё способ 2, который я также уже описывал, но который я бы не рекомендовал, т.к. на мой взгляд он не такой очевидный - это вынести прототип из родительского блока: {template child() extends base} {proto e()} {super} {/} {block bar} fffffuuuu {/} {/} Здесь ты переопределил блок bar, но также явно вынес прототип. Цитата:
|
Тьфу, не то, мозг отрубается...
http://javascript.ru/forum/project/3...tml#post356968 А если у меня шаблоны разбросаны по разным папкам? |
Цитата:
|
Цитата:
Я уже описывал решения проблемы, но ок, опишу ещё раз: Решение 1: если ты хочешь как и раньше юзать вотчер WebStorm, то зайди в его настройки и просто задай вместо компиляции файла - компиляцию папки, например, snakeskin myTpls/ -o '%filePath%.js' Не надо боятся, что это будет долго делаться - не будет, SS не будет перекомпилить файл - если в этом не будет нужды. Решение 2: В CLI Snakeskin есть свой вотчер, который никак не связан с WebStorm и который знает про граф отношений. Для этого нужно убить вотчер в WebStorm и запустить из консольки SS с флагом --watch. Решение 3: Использовать вместо вотчера WebStorm вотчер gulp ил grunt - он просто при любом изменении будет перекомпиливать все шаблоны, т.к. решение похоже на пункт 1. Что тебе удобней - выбирай сам. |
Часовой пояс GMT +3, время: 00:34. |