Anatoly
Можно ли как-то не передавая пропсы в компонент сделать так, чтобы он видел определнные переменные там, откуда вызывается?
Alex
vuex
Anatoly
мне не нужны глобальные переменные
Alex
или хз, но может сработать глобальный объект
Stanislav
Нет
Anatoly
мне нужно как бы дефолтные пропсы, чтобы их каждый раз не писать
Alex
а, тогда не знаю
Stanislav
мне нужно как бы дефолтные пропсы, чтобы их каждый раз не писать
ну дефолтные значения у пропсов задать можно
Anatoly
не совсем дефолтные, а чтобы он брал заданные ему пропсы оттуда, откуда вызывается, чтобы просто можно было опускать передачу пропсов. т.к. компонент общий и очень частый, не удобно писать
Anatoly
может как-то через миксин можно?
Danila
Ты хочешь из парента вытаскивать пропсы, которые тебе напрямую парент не передаёт?
Danila
НАРКОМАН ШТОЛЕ
Anatoly
да
Tom
Мисье, вы знаете толк в извращениях
Tom
🙂
Anonymous
джентльмены, подскажите по vue router. Включил history mode - как добавить функционал, если мне нужно вставить ссылку копипастом и перейти на нее? По идее, должна сработать проверка по имени и редирект на страницу если она существует, ну или на 404. Подскажите документацию, в официальной не нашел подобных примеров -_-
Tom
что значит вставить ссылку копипастом?
Tom
Уточните пожалуйста
Danila
не совсем дефолтные, а чтобы он брал заданные ему пропсы оттуда, откуда вызывается, чтобы просто можно было опускать передачу пропсов. т.к. компонент общий и очень частый, не удобно писать
IoC решил нарушить, проказник? Ты компонент на его окружение завязываешь, причём очень неявно, как-то не очень правильно. И таки да, без глобального какого-то стейта так не сделать, насколько мне известно. Пусть меня поправят.
Anonymous
что значит вставить ссылку копипастом?
например, мне дали ссылку, я вставляю ее в адресную строку и нажимаю enter. в режиме browser history он ее не найдет
Danila
Или переход по ссылке на какой-то незаданый роут
Anonymous
по идее, прийдется разобрать урл, найти совпадения и отправить командой router.push('/dawdawda')
Anonymous
или может что-то делаю не так? localhost:3000/update-credit-card -- страница есть. Если обновить страницу и с корня localhost:3000/ добавить в урл /update-credit-card -- не сработает переаресация
Danila
{ path: '*', redirect: '/404' }
Danila
Попробуй
Danila
А, у тебя другое
Anonymous
да-да, как я понял нужно использовать хук beforeEach
Anonymous
не знаю только как корректно проверку настроить
Ali
Konstantin Не очень понятно что он не найдет ? Т.е. у тебя есть ссылка, допустим на пост из блога, sitename.com/blog/123. И ты ее копипастишь. И в чем проблема ? 😊
Roman
Относительно моей vuex namespaces проблемы. Вдруг кто-то отзовется. Грубо говоря, есть 3 компонента: редактор с textarea, текстовый блок (просто блок div с текстом из редактора) и корневой компонент. В корневом компоненте у нас есть список id-шников текстовых блоков, при добавлении нового автоматически добавляется новый модуль с нужным id-шником в хранилище vuex. Для изменения текста некоторого блока я нажимаю на него, в поле id редактора значение заменяется динамически на id нажатого текстового блока. Vuex модуль текстового блока имеет «namespaced: true», но когда я добавляю новые блоки в список и пытаюсь изменить текст для какого-то из них, видно, что синхронизируемый текст изменяется во всех текстовых блоках ... Примерное содержимое основных файлов: https://jsfiddle.net/j72ojv15/
Anonymous
Konstantin Не очень понятно что он не найдет ? Т.е. у тебя есть ссылка, допустим на пост из блога, sitename.com/blog/123. И ты ее копипастишь. И в чем проблема ? 😊
смотри: нахожусь на урле localhost:8080/purchase/business_free_trial/loggedout но если зайти на localhost:8080/ и добавить в конец purchase/business_free_trial/loggedout -- он не найдет эту страницу -- говорит Cannot GET /purchase/business_free_trial/loggedout
Anonymous
нет ли там случайно лишнего слеша / ? вроде localhost:8080//purchase/business_free_trial/loggedout
уверен что нет, застрял надолго и тщательно проверял такие мелочи
Ali
Konstantin Ааа, у тебя скорее всего бекенд или сам сервер отвечает за роутинг и он тебе выкидывает ошибку. Тебе нужно "подружить" бек/сервак с твоим роутингом на фронте.
Ali
тут есть инфа как настраивать сервер https://router.vuejs.org/en/essentials/history-mode.html
Anonymous
супер. Спасиб)
Tom
если у тебя nginx 😄
Tom
если не знаешь какой веб сервер стоит сделай греп по 80 порту
Tom
тут есть инфа как настраивать сервер https://router.vuejs.org/en/essentials/history-mode.html
определи веб сервер, зайди в конфиги веб сервера, и настрой его согласно тому что тебе скинули
Anonymous
а на локалхосте возможно такое сделать?
Tom
на вебпак сервере что-ль?
Anonymous
угу
Tom
Слушай, что-то я подозреваю что собака выше закопана)
Anonymous
Слушай, что-то я подозреваю что собака выше закопана)
поясни? настройки простейшие: const router = new VueRouter({ mode: 'history', routes: [] }); а навигация <router link to='/name'>
Ali
Konstantin у тебя есть бекенд на проект, допустим на node.js ? Или у тебя только фронтенд и он создавался при помощи vue-cli и подобного ?
Anonymous
Konstantin у тебя есть бекенд на проект, допустим на node.js ? Или у тебя только фронтенд и он создавался при помощи vue-cli и подобного ?
да, только фронт пока что. Бэк есть, но с ним пока что не работаю. Если вопрос в настройке сервера - фиг с ней, отложу. Но на локалхосте не добиться похожего без сервера?
Anonymous
пытаюсь разобраться, мой фейл или это норма
Danila
пытаюсь разобраться, мой фейл или это норма
Ща я быстро подниму, посмотрю, но похоже на твой фейл
Danila
пытаюсь разобраться, мой фейл или это норма
Это твой фейл, у меня всё работает
Anonymous
Это твой фейл, у меня всё работает
то есть ты можешь дописать урл и срабатывает переход на нужную страницу в mode: 'history'?
Danila
Да
Danila
export default new Router({ mode: 'history', routes: [ { path: '/', name: 'My events', component: EventsList }, { path: '/event/edit/:id', name: 'Event editor', component: EventEditor }, { path:'/purchase/business_free_trial/loggedout', name: 'You are logged out!', component: TrialLoggedOut } ] })
Danila
Вот есличо
Anonymous
прикольно. У меня примерно также. Что ж, буду копать дальше, не смею больше занимать эфир и внимание чятика. Спасибо за помощь и советы
Bushrut
Не совсем. Компонент view.
Фигасе, норм так заходит такой подход. Для обычно SPA круто.
Bushrut
ого!)) вспомнили
ищу выходы отрендарить spa без сервера. тк. его не заюзать на рабочей машине. А этот подход прям в точку.
Oleksandr
ну вот)
Anton
Всем привет. Народ подскажите куда копать. Vue SPA, использую socket.io с laravel-echo-server. В хроме стало появляться "Ожидание доступного сокета" и так и висит
Roman
А что в laravel-echo-server говорит?
Anton
А что в laravel-echo-server говорит?
Ничего подозрительного не говорит, проблема вылезает до загрузки страницы. То есть ощущение что проблема в https протоколе или браузере. Помогла пока-что перезагрузка браузера Chrome последней версии
Владимир
Относительно моей vuex namespaces проблемы. Вдруг кто-то отзовется. Грубо говоря, есть 3 компонента: редактор с textarea, текстовый блок (просто блок div с текстом из редактора) и корневой компонент. В корневом компоненте у нас есть список id-шников текстовых блоков, при добавлении нового автоматически добавляется новый модуль с нужным id-шником в хранилище vuex. Для изменения текста некоторого блока я нажимаю на него, в поле id редактора значение заменяется динамически на id нажатого текстового блока. Vuex модуль текстового блока имеет «namespaced: true», но когда я добавляю новые блоки в список и пытаюсь изменить текст для какого-то из них, видно, что синхронизируемый текст изменяется во всех текстовых блоках ... Примерное содержимое основных файлов: https://jsfiddle.net/j72ojv15/
как блоки добавляешь? один и тот же объект добавляешь? ). // я так подозреваю сделай функцию отдающую новый экземпляр блока при регистрации
Roman
делаю export default function () {...} со всеми внутренностями модуля
Roman
это не работает
Michael
Антон, скинь скриншот вкладок диспетчера: консоли и нетворка, где побольше об ошибке.
Roman
как блоки добавляешь? один и тот же объект добавляешь? ). // я так подозреваю сделай функцию отдающую новый экземпляр блока при регистрации
в данный момент проблема была решена отказом от регистрации модулей в пользу хранения в одном объекте состояние списка всех текстовых компонентов
Roman
Roman
что-то такое.. не уверен, насколько это нормально будет работать с бОльшим количеством свойств в каждом из объектов, доступных таким образом по ключу (хотя бы около 10-15), завтра буду пробовать
Anonymous
подкиньте мысль, как сделать так, чтобы значения второго select зависели от того, какая опция выбрана в первом select?
Vladislav
v-if?
qluqua
свяжи иоба селекта с data, опиши состояния. типа первый селект с v-model а второq зависит от data которая зависит от первого)
Anonymous
v-if?
так не хочется, не плодить селекторы/компоненты на странице
makvell
Всем всего. Вопрос по роутеру. Использую в хистори режиме, роуты вида /items/13, где 13 - параметр. Компонент его берет, находит item с таким Id и проверяет, если внутри есть еще item'ы, рисует их на экране с сылкой в каждом на /items/id. А если item'ов нет, перекидывает на роут /items/55/edit. Пока мы ходим до редактирования, кнопка назад в браузере работает норм, как только зашли в редактирование - работать перестает. Почему - понятно, непонятно как и где такую ситуацию обрабатывать. Или забить и не пытаться выстрелить себе в ногу? 😊
Vyacheslav
я правильно понимаю - вуе в фоне не обновляет дум дерево? (если вкладка не активна)
Vyacheslav
получается если вкладка была не активна а там много изменений произошкло то когда делаешь ее активной на экране начинаю резко отрисовываться все изменения что успели произойти