Size: a a a

JavaScript — русскоговорящее сообщество

2019 November 03

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Baxxter
У вас течёт абстракция, если вам вдруг нужна ссылка на родителя
не на родителя, а на экземпляр, где был new.
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
вся задача - разбить на файлы чтоб можно было легче поддерживать код
компонент менюшки содержит кнопки которые при нажатии меняют компонент вьюшки вызывая его методы
компонент контроллов тоже меняет вьюшку
вот пример юзкейса связанных компонентов
изначально делал всё в 1 большой функции
заколебался скроллить туда сюда
решил разбить по файлам и огрёб(
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Znacovean Simion
а компоненты и не абстрагированные..они зависимые от других
точнее могут изменять другие
которые проинициализированы в родителе
походу ты путаешь родительский класс с просто родителем, в котором инициируются экземпляры.
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Znacovean Simion
а компоненты и не абстрагированные..они зависимые от других
точнее могут изменять другие
которые проинициализированы в родителе
Вот для этого и нужен контроллер, чтобы эта ответственность в другом классе возложена была
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
походу ты путаешь родительский класс с просто родителем, в котором инициируются экземпляры.
да..не путаю..просто говорю неправильно..извиняюсь)
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Znacovean Simion
вся задача - разбить на файлы чтоб можно было легче поддерживать код
компонент менюшки содержит кнопки которые при нажатии меняют компонент вьюшки вызывая его методы
компонент контроллов тоже меняет вьюшку
вот пример юзкейса связанных компонентов
изначально делал всё в 1 большой функции
заколебался скроллить туда сюда
решил разбить по файлам и огрёб(
Возьмите svelte какой нибудь, не пишите велосипед😓🤦‍♂️
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
Baxxter
Вот для этого и нужен контроллер, чтобы эта ответственность в другом классе возложена была
да мне знаком механизм pub-sub
та же шина событий в vue (const Bus = new EventBus())
Bus.on(...)

тут же как его впаять?
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Znacovean Simion
да мне знаком механизм pub-sub
та же шина событий в vue (const Bus = new EventBus())
Bus.on(...)

тут же как его впаять?
Разделить контроллер и представление для каждого компонента
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Для начала
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Znacovean Simion
да..не путаю..просто говорю неправильно..извиняюсь)
@Baxxterkhv правильно сказал, у тебя есть отдельный класс меню и отдельный класс кнопки. экземплярами кнопок рулит экземпляр меню. в кнопки можно передать ссылку на меню.
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
@Baxxterkhv правильно сказал, у тебя есть отдельный класс меню и отдельный класс кнопки. экземплярами кнопок рулит экземпляр меню. в кнопки можно передать ссылку на меню.
Я бы предпочел, чтобы кнопке была передана функция) которая описана в меню)
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
Baxxter
Разделить контроллер и представление для каждого компонента
за рендер в дом отвечает handlebars
у меня в html готовые шаблоны
вся задача этих компонентов
зарегистрировать их (каждый у себя)
в момент инициализации получив данные от сервака зарендерить каждый в свои дом-ноды
и проинициализировать события кликов, и тд которые будут производить определенные действия с собою или другими частями приложения.
с собою когда - понятно
а вот с другими - вопрос - как к ним доступ получить?
если есть шина событий общая - она должна где-то создаваться
где?
и импортировать и в главный компонент (где в конструкторе инициализируются мелкие)
и в мелкие
и если в мелком надо изменить из одного компонента что-то в другом
вместо прямого вызова его методов
можно вызвать событие шины
на которое будет подписан тот другой компонент и будет вызван его метод засчёт срабатывания этого события
такой подход мне нравился во вью
но там и биндинг удобный на ноды - зрительно видно что конкретно срабатывает
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Leet 4
Я бы предпочел, чтобы кнопке была передана функция) которая описана в меню)
не суть важно что передавать. скажем так - передача управляющих методов для изменения состояния контроллера.
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Znacovean Simion
за рендер в дом отвечает handlebars
у меня в html готовые шаблоны
вся задача этих компонентов
зарегистрировать их (каждый у себя)
в момент инициализации получив данные от сервака зарендерить каждый в свои дом-ноды
и проинициализировать события кликов, и тд которые будут производить определенные действия с собою или другими частями приложения.
с собою когда - понятно
а вот с другими - вопрос - как к ним доступ получить?
если есть шина событий общая - она должна где-то создаваться
где?
и импортировать и в главный компонент (где в конструкторе инициализируются мелкие)
и в мелкие
и если в мелком надо изменить из одного компонента что-то в другом
вместо прямого вызова его методов
можно вызвать событие шины
на которое будет подписан тот другой компонент и будет вызван его метод засчёт срабатывания этого события
такой подход мне нравился во вью
но там и биндинг удобный на ноды - зрительно видно что конкретно срабатывает
Я бы сделал одну модель, типа глобал стейт, на неё подписал бы вьюхи в контроллере. Во вьюхах наружу торчат подписка на дом обработчики. В модели подписки на изменение стейта. Контроллер все связывает вместе - моделей может быть много, как и представлений. Гуглить mvc/mvp
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Baxxter
Я бы сделал одну модель, типа глобал стейт, на неё подписал бы вьюхи в контроллере. Во вьюхах наружу торчат подписка на дом обработчики. В модели подписки на изменение стейта. Контроллер все связывает вместе - моделей может быть много, как и представлений. Гуглить mvc/mvp
судя по конструкции с глобальной шиной, человек так и не осилил vuex, а Вы его на создание аналога редакса уже сподвигаете. 😁
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
судя по конструкции с глобальной шиной, человек так и не осилил vuex, а Вы его на создание аналога редакса уже сподвигаете. 😁
я не осилил vuex?) спросили бы для начала) я просто упомянул место в котором это шина мне впервые в глаза "врезалась"
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
наблюдать как работает готовое решение и разбираться в его ядре - разные вещи)
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
Baxxter
Я бы сделал одну модель, типа глобал стейт, на неё подписал бы вьюхи в контроллере. Во вьюхах наружу торчат подписка на дом обработчики. В модели подписки на изменение стейта. Контроллер все связывает вместе - моделей может быть много, как и представлений. Гуглить mvc/mvp
было бы очень хорошо если б гугления вывели бы на подобный вами описанному минималистический пример
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
пока только такое нагуглил
источник

ZS

Znacovean Simion in JavaScript — русскоговорящее сообщество
источник