@vuejs_ru

Страница 3200 из 3900
GTech
05.07.2018
05:01:04
Всем привет, у меня express генерит ссылки по .pug файлам, мне нужно чтоб /store и /account вел на spa (/store уже готов) Вопрос такой, как при /account вести в SPA в /store, где есть vue-router?





Возможно мне нужно как то передавать в spa значене параметра или в express сделать перехват как с /store и там параметр вставлять

Google
Евгений
05.07.2018
05:39:18
Доброго дня. Кто с Vue-Bootstrap работалНасколько он удобен и насколько похож на обычный?

Igor
05.07.2018
05:50:11
Обычный это когда ты используешь существующие css классы на чистом html, а в данном случае разработчики предлагают использовать их компоненты. У меня в организации компоненты общего пользования, мы написали самостоятельно, но использовать уже существующую библиотеку тоже не плохой вариант, если проект не будет разрабатываться десятелетиями.

Так что тебе надо ответить себе, нужны ли тебе компоненты общего пользования написанные другими людьми или ты будешь писать их самостоятельно с нуля, чтобы переиспользовтаь по всему проекту

Кстати у них дока неплохая

ed
05.07.2018
05:58:02
Народ, есть компонент "кнопка", я его использую <Button @click.native>bla bla</Button> Внутри кнопки (именно на уровне кнопки) нужно прервать клик, чтобы он вверх не пошел, как это во вью нормально сделать?

stoppropagation все равно пускает дальше

ed
05.07.2018
05:59:04
превентДефаулт ?
он не прерывает ход события наверх по офф доке, но даже они вместе не помогают

Igor
05.07.2018
05:59:19
.click.stop.prevent

почитай доку там написана остановка событий

нативных

ed
05.07.2018
05:59:45
.click.stop.prevent
если на уровне кнопки условие выполнилось то мне нужно пустить клик дальше

Google
Igor
05.07.2018
06:00:39
именно нативный?

ed
05.07.2018
06:00:45
это кнопка с подтверждением, логика подтверждения на уровне кнопки

zinge
05.07.2018
06:00:58
если на уровне кнопки условие выполнилось то мне нужно пустить клик дальше
хм, на @click весит метод ? в чем проблема напихать туда условий ?

ed
05.07.2018
06:00:59
если писать просто @click то он вообще не работает

хм, на @click весит метод ? в чем проблема напихать туда условий ?
условия могут быть только на уровне кнопки

то есть <Button @click=method ></Button> но method выполняется только если на уровне кнопки условие (которое рассчитывается там же успех)

zinge
05.07.2018
06:01:57
Igor
05.07.2018
06:02:12
enabled сделай лучше

zinge
05.07.2018
06:02:42
то есть <Button @click=method ></Button> но method выполняется только если на уровне кнопки условие (которое рассчитывается там же успех)
у иебя там колбеки которые теряют контекст выполнения и не находят нужные методы снаружи ?

ed
05.07.2018
06:03:06
зачем мне методы снаружи?

zinge
05.07.2018
06:04:08
зачем мне методы снаружи?
по вашему описанию сложно понять суть проблемы, делаю предположения ...

Igor
05.07.2018
06:04:12
Выполнение действий по кнопке всегда полностью зависит от родителя? или от входящего props?

Тогда нужно просто блокировать кнопку. Жать на кнопку которая ничего не делает, это издевательство

ed
05.07.2018
06:04:57
Кнопка это простейший компонент с внутренним стейтом, если во кнопке нажали второй раз внутренний стейт меняется на тру и должен выполнится внешний обработчик

Madiyar
05.07.2018
06:05:14
Народ кто использовал social-sharing vue плагин? https://github.com/nicolasbeauvais/vue-social-sharing

почему то при клике на телегу он шейрит с текстом нормально, но на другие только title шейрит без текста

ed
05.07.2018
06:07:22
<li>BLA BLA BLA <Button @click="delete" :confirmation="true">Delete</Button> </li> Button.vue <template> <span v-if="showConfirmation"> Are you sure? <span>yes</span> <span>no</span> </span> <span v-else><button @click="click"><slot/></button></span> </template> <script> export default { name: 'Button', data(){ return {confirmed: false} }, methods:{ click(e){ if(!this.confirmed){ e.preventDefault() e.stopPropagation() return } } } } </scriupt>

вот такой кейс делаю

проблема, что родительский @click=delete отрабатывает - всегда

Google
ed
05.07.2018
06:08:16
выше не полный код, а псевдокод общей структуры

ed
05.07.2018
06:09:54
о все разобрался

zinge
05.07.2018
06:10:07
о все разобрался
что было ? довай делись уж

ed
05.07.2018
06:10:19
сек

было: <template> <span @click="click"> Внутри компонента клик был в родительской ноде, он работает вместе с внешним обработчиком и внутренняя отмена почему то не прерывает событие. Надо внутри компонента клик спустить на 1 ноду ниже, чтобы родительский элемент в компоненте был без внутренних обработчиков стало (грубо говоря): <template> <span> <span @click="click"> Тогда, прервав событие на уровне дочернего спана внешний обработчик не сработает

ed
05.07.2018
06:14:21
работает ?
поправил сообщение, интернет лаганул

ed
05.07.2018
06:16:39
честно говоря, в обычном js сработал бы только один из двух (т.к. в первом случае на родительскую ноду навешивается 2 обработчика, внешний и внутренний), тут почему то срабатывают оба

Igor
05.07.2018
06:19:03
Не очень люблю критиковать, но если кто-то другой попробует это доработать, он вообще не будет знать таких особенностей

Жуть какая-то)

ed
05.07.2018
06:20:43
Жуть какая-то)
ну, у меня в системе есть ui-пак, стандартных компонентов, один из них кнопка с подтверждением. кнопок в системе миллион, не могу же я эту логику описывать в каждом месте

Кажется, в родителе можно было .self к обработчику попробовать добавить
не уверен т.к. нормально все это работает только с click.native

возможно, я просто не правильно это готовлю

но, получил рабочий вариант)

Еще убивает проблема роутов (такая же как в реакте). Как не рендерить родительский роут, если я отрисовываю дочерний?

[ { name: 'users-list', path: 'users', component: UsersTable children: [ { name: 'user-page', path: ':userId', component: UserPage } ] } ]

вот это как-то решено во vue-router нормально?

Google
ed
05.07.2018
06:26:20
при переходе на users мне нужен UsersTable, но когда я перешел на users/555 мне вместо UsersTable нужен <router-view/>

но, я же могу сделать дочерним роутом модалку (урлы у модалок это удобно), и в таком случае родителя надо рендерить

Admin
ERROR: S client not available

Maksim
05.07.2018
06:27:23
[ { name: 'users-list', path: 'users', component: UsersTable children: [ { name: 'user-page', path: ':userId', component: UserPage } ] } ]
Можно сделать отдельный роут, если не нужен дочерний, типо того path: 'users/:userId'

ed
05.07.2018
06:28:03
отдельный роут не подходит (я это решил сейчас так и всегда так же решал в реакте) потому что все опенсорсные плагины хлебных крошек и прочего работают как раз от маршрутов роутера

и для них критично важно чтобы сохранялось кто чей родитель

хм, что если в beforeEnter менять компонент на <router-view/> и обратно, по условию

Maksim
05.07.2018
06:31:30
и для них критично важно чтобы сохранялось кто чей родитель
Хм, написать/форкнуть свои хлебные кошки)

ed
05.07.2018
06:32:06
Значит выноси таблицу на уровень детей
на 1 уровне и таблица и едит?

прикол в том чтобы это был родитель и ребенок, чтобы зхлебные крошки работали нормально

и без всяких шаманств в рендере как это делают в реакте уже на протяжении скольких то лет

Furrya
05.07.2018
06:32:53
Проще форкнуть breadcrumbs или сделать свои "крошки")

ed
05.07.2018
06:33:25
Проще форкнуть breadcrumbs или сделать свои "крошки")
нет проблемы в том чтобы мне сделать так, чтобы это работало, проблема в том, что как на вью, так и на реакте люди уже годы это говнокодят меня из-за этого бомбит)

Maksim
05.07.2018
06:35:32
Furrya
05.07.2018
06:35:44
не понял, то есть "свои крошки == так чтобы работало === говнокод?", большинство плагинов/либ под vue можно подвести под n уровень говнистости)

ed
05.07.2018
06:37:31
у меня на прошлом проекте ссылка была примерно 4-5 уровней вложенности таблица - элемент - таблица статистики - элемент статистики - далее... и там как раз (как и сейчас) сделали свои хлебные кношки

слегка удивляет, почему только у нас эта проблема настолько глобальна

Павел
05.07.2018
07:07:28
Доброе утро

Google
Павел
05.07.2018
07:07:33
<MainHeader></MainHeader> <router-view></router-view> <MainFooter></MainFooter>

у меня вот такой код, но есть желание что-бы на некоторых страницах хидеры не показывались. вижу 2 решения. вынести компоненты (MainHeader и MainFooter) на конкретный роут вью, и там либо добавлять либо нет. или v-if

Alex
05.07.2018
07:24:14
Народ - а не подскажите: нормально ли в директории view/pages внутри директории, например, LoginPage сделать сабдиректорию где хранить компоненты которые используются только этой вьюхой?

Furrya
05.07.2018
07:25:02
1) root-view с <router-view/> === '/' 1.1) entire-view <router-view/> === '/entire' (хедеры нужны) 1.2) auth-view <router-view/> === '/auth' (тут хедеры не нужны, только форма логина и всякие remember и тд) Мыслите как архитектор, если в компоненте с <router-view> вам какой то компонент(ы) не нужен в определенном route_path, может стоит вынести их в свой "route-path/context"?

/auth /entire как пример

Благо компоненты можно инклудить в components и глобально с Vue.component

Furrya
05.07.2018
07:35:44
+auth +entire как отдельные темплейты для страниц в root-view вообще нет верстки

Ivan
05.07.2018
07:51:27
Подскажите, как правильно поступить. Нужно, чтобы при изменении данных в сторе, происходили действия в компоненте. Если получать эти данные через computed, то нужно это свойство где-то и использовать, иначе ничего не происходит. Это какие-то костыли. Как быть?

Rafkat
05.07.2018
07:52:20
На митап по Вью кто идёт?

Страница 3200 из 3900