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

Google

zinge
05.07.2018
05:24:44

Евгений
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 все равно пускает дальше

zinge
05.07.2018
05:58:40

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

Igor
05.07.2018
05:59:19
.click.stop.prevent
почитай доку там написана остановка событий
нативных

ed
05.07.2018
05:59:45

Google

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

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

zinge
05.07.2018
06:00:58

ed
05.07.2018
06:00:59
если писать просто @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

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
выше не полный код, а псевдокод общей структуры

zinge
05.07.2018
06:09:30

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">
Тогда, прервав событие на уровне дочернего спана внешний обработчик не сработает

zinge
05.07.2018
06:12:05

ed
05.07.2018
06:14:21

zinge
05.07.2018
06:15:13

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

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

Rafael
05.07.2018
06:20:36


ed
05.07.2018
06:20:43
Жуть какая-то)
ну, у меня в системе есть ui-пак, стандартных компонентов, один из них кнопка с подтверждением.
кнопок в системе миллион, не могу же я эту логику описывать в каждом месте
возможно, я просто не правильно это готовлю
но, получил рабочий вариант)
Еще убивает проблема роутов (такая же как в реакте).
Как не рендерить родительский роут, если я отрисовываю дочерний?
[
{
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

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

Maksim
05.07.2018
06:31:30

Rafael
05.07.2018
06:31:50

ed
05.07.2018
06:32:06
прикол в том чтобы это был родитель и ребенок, чтобы зхлебные крошки работали нормально
и без всяких шаманств в рендере как это делают в реакте уже на протяжении скольких то лет

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

ed
05.07.2018
06:33:25

Rafael
05.07.2018
06:35:14

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

Иван
05.07.2018
07:30:09

Павел
05.07.2018
07:30:52

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
На митап по Вью кто идёт?