Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Подключение components из хелперов #126

Open
drzhbe opened this issue Dec 22, 2014 · 1 comment
Open

Подключение components из хелперов #126

drzhbe opened this issue Dec 22, 2014 · 1 comment

Comments

@drzhbe
Copy link
Contributor

drzhbe commented Dec 22, 2014

Хочется иметь на уровне модулей файлы-хелперы, чтоб сам файл модуля не раздувался.
В этих файлах нужны компоненты (например, $i18n).

Хотелось бы иметь возможность подключать компоненты как-то так require(componentName)
Понятно, что slot'a в этих файлах не будет, потому что чтобы его иметь — нужно принимать аргумент.

Минусы текущего подхода:

  • Сами файлы — функции, которые принимают аргументы, вместо того чтоб просто написать
module.exports = {
    invalidate: invalidate,
    invalidateSimple: invalidateSimple
};
  • Подключение файлов более развесистое за счет вызова функции и передачи аргументов
    var regionState = _.extend({}, require('./regionState-get'), require('./regionState-invalidate'), **require('./regionState-lists')($i18n)**);
    slot.invoke не проканает, т.к. из одного хелпера вызвать другой не получится (в хелперах нет слота).
  • Например, хелпер regionState-invalidate использует другой хелпер regionState-lists.
    В regionState-lists используется компонент $i18n, но в regionState-invalidate он не нужен.
    Но мне придется передавать компонент в regionState-invalidate, чтоб дальше его прокинуть в regionState-lists.
@anru
Copy link
Contributor

anru commented Dec 22, 2014

Есть ньюансы:

  1. компоненты на app одни, поэтому просто так подключать какой-то супер-функцией не получится - нужно передавать или app или еще что-то что уникально для каждого app
  2. что касается проблемы описаннной в тикете, то надо просто i18n сделать не компонентом, а либой. Я сейчас не вижу ни одной причины иметь уникальный i18n на каждый инстанс аппа. Может они и есть, но даже в этом случае я бы от них какими-нибудь путями уходил

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants