
Xored
31.03.2018
08:58:46
Подскажите пожалуйста, как лучше реализовать, я чего то застрял. Допустим есть <div> в котором я хочу по клику на пункты меню показывать нужные компоненты. Как это лучше сделать? Можно это сделать через <div is="...."> ?

Женя
31.03.2018
09:01:12
Наверное лучше добавить булевые свойства в дату, и менять их по клику, и те элементы которые ты хочешь прятать или отображать через v-if="здесь твое булевое свойство"
Если я тебя правильно понял

Xored
31.03.2018
09:05:28

Google

Valeriy
31.03.2018
09:08:36
кстати, есть ли какие-то минусы вот в таком подходе, который я сейчас использую?
а то все мои знакомые фигачат компоненты в виде объектов как в доке написано
но мне объекты кажутся менее читаемыми чем классы

Женя
31.03.2018
09:11:24
Я такой хотел подход хотел использовать
из-за наследования

Александр
31.03.2018
09:11:40
как в реакте

Женя
31.03.2018
09:11:45
Да

Valeriy
31.03.2018
09:11:51
ну вот я и на реакте пишу и на vue

Женя
31.03.2018
09:11:52
Я просто на работе на реакте пишу

Александр
31.03.2018
09:12:07
только как в компании так писать, где все пишут как в доке

Valeriy
31.03.2018
09:12:29
vue во многих моментах мне нравится побольше даже, но очень уж я против всяких nextTick

Женя
31.03.2018
09:13:20
Дело вкуса, мне кажется здесь минус только в том что это не по стандарту(не как все тоесть)

Google

Илья
31.03.2018
09:21:36

Viktor
31.03.2018
09:25:29
Всём привет, кто нибудь делал transition внутри дочернего компонента, если просто его писать - не работает ?

Valeriy
31.03.2018
09:29:58
скорее всего параметры неверно заданы
есть же <transition> а есть «transition-group>

Viktor
31.03.2018
09:32:59
Ок, сейчас скину

Xored
31.03.2018
09:41:00

Богдан
31.03.2018
09:44:49
Господа, а какой цымес во вьюексе методы через констансты обьявлять?

Viktor
31.03.2018
09:48:28
скорее всего параметры неверно заданы
App.vue
<template>
<div id="app">
<router-view class="view"></router-view>
</div>
</template>
Index.vue
<template>
<header-component></header-component>
<transition name="fade" mode="out-in">
<div class="content" id="content">
<content-component :content="content"></content-component>
<div class="buffer"></div>
</div>
</transition>
<footer-component></footer-component>
</template>
<style>
.fade-enter-active, .fade-leave-active {
transition: all 0.4s ease;
}
.fade-enter, .fade-leave-active {
opacity: 0;
}
</style>

Alex
31.03.2018
09:51:08

Valeriy
31.03.2018
09:52:46
.fade-enter, .fade-leave-to {
opacity: 0;
}

Богдан
31.03.2018
09:55:43

Valeriy
31.03.2018
09:56:04

Богдан
31.03.2018
09:56:21
но тогда же консоль ругнеться, и как бы ошибка будет сразу показана?

Valeriy
31.03.2018
09:56:21
и если нет тестов адекватных, то пользователь тебе потом об этой ошибке расскажет :)))
а почему консоль должна ругаться на диспатч?
хотя надо проверить, но в реакте точно не будет ругаться :))
ведь экшин это plain object

Google

Valeriy
31.03.2018
09:58:47
в любом случае это уже будет ошибка runtime

Богдан
31.03.2018
09:59:20
ну таки ругается
но логика теперь понятна
хотя тащить за собой вагон констант как-то не очень удобно

Valeriy
31.03.2018
10:01:14
а ты мапишь экшины через mapActions?
просто попробуй не мапить и не указывать namespace
или мапить без указания namespace

Леха
31.03.2018
10:02:43

Valeriy
31.03.2018
10:02:55
ну бывают же экшины глобальный
которые должны пройти сквозь все твои модули
какой-нибудь resetState

Богдан
31.03.2018
10:03:23
я вообще не маплю, как бы ради у меня мелкие формы, там только пару екшинов

Valeriy
31.03.2018
10:03:24
когда ты хочешь обнулить все дерево стейтов одним вызовом

Viktor
31.03.2018
10:04:30

Valeriy
31.03.2018
10:07:47

Богдан
31.03.2018
10:07:48
как-то так вообще нечитаемо

Valeriy
31.03.2018
10:08:32
нет ну так точно не делают
определяешь строковые константы, экспортируешь их
там где нужно их юзать делаешь import * as authActions from 'blabla'

Google

Valeriy
31.03.2018
10:09:38
и используешь уже auth.SING_IN
1. любая норм IDE тебе автокомплит покажет на auth.
2. глубокий анализ покажет если опечатался

Viktor
31.03.2018
10:10:21

Богдан
31.03.2018
10:11:25

Valeriy
31.03.2018
10:11:40
если без мапинга в объекте компонента, то
{
[auth.SING_IN]: () => {...}
}
есть экшины специфичные только для конкретного модуля
а есть глобальные
например летит такой экшин resetState
если он у тебя в модуле определен, то он вызовется
если нет, то нет

Богдан
31.03.2018
10:14:31
ок, а какое значение тогда будет у SING_IN, когда в модуле вюкса должно быть SING_IN = 'sign_in', а уже в комоненте будет SING_IN = 'auth/sign_in'
это только если маппать с найспейсам тогда будет одно значение
можешь скинуть в личку или сюда пример?
а то может когда на пальцах, то я сути не уловил, а в примере все будет ясно )))

Valeriy
31.03.2018
10:19:33
тебе просто надо в компоненте мапить экшины
через mapActions('yourModuleName', [auth.SIGN_IN, auth.SIGN_OUT])
а сами экшины определять как
actions: {
async [auth.SIGN_IN]() { await ... },
[auth.SIGN_OUT]() { ... }
}
типа такого паттерна

Google

Sunlive
31.03.2018
10:23:06

Yevgen
31.03.2018
10:30:42
Всем привет. Уважаемые, подскажите пожалуйста, есть ли какой-то JS пакет с помощью которого я могу открыть пдф файл, получить номер текущей страницы и при открытии передать номер страницы, которую необходимо открыть.

Valeriy
31.03.2018
10:33:05

Yevgen
31.03.2018
10:33:42
Спс

Dmitriy
31.03.2018
10:38:59
Ребят привет, посдкажите как сделать транзишен контента компоненты?
не между компонентами

Михаил
31.03.2018
10:46:22
Всем привет.
У кого-нибудь был такой case?

b0g3r
31.03.2018
10:46:45
а в чем case?)

Михаил
31.03.2018
10:46:57
В отображении иконки)
Стоит Webpack, Vue,Vuetify
<template>
<div>
<fetch-data />
<v-btn color="error" fab large dark>
<v-icon>alarm</v-icon>
</v-btn>
</div>
</template>
<script src="./home.ts"></script>
собственнно так выглядит шаблон
собирал проект не сам, пытаюсь найти косяк)
С подключением вроде всё ок.
import Vue from "vue";
import VueRouter from "vue-router";
import Vuetify from "vuetify";
import Axios from "axios";
import "./types/vue-global";
import { routes } from "./routes";
import { ApiEndpoints } from "./api";
import "vuetify/dist/vuetify.min.css";
import "material-design-icons/iconfont/material-icons.css";
import "./css/site.css";
Vue.use((VueRouter) as any);
Vue.use(Vuetify);
Vue.prototype.$http = Axios;
Vue.prototype.$apiEndpoints = new ApiEndpoints();
const vue = new Vue({
el: "#app-root",
router: new VueRouter({ mode: "history", routes: routes }),
render: h => (...)
});

Иван
31.03.2018
10:50:43

Sunlive
31.03.2018
10:50:51
я закинул пусть будет