
iPrior
28.08.2018
14:43:45
Простите, на совещание утащили.
За ответы спасибо.

Stanislav
28.08.2018
14:43:58

Ivan
28.08.2018
15:38:50
Скажите, в чем приципиальная разница между миксинами, и если использовать extends

Arsen
28.08.2018
15:40:13

Google

Arsen
28.08.2018
15:40:36
Я использую extends, когда мне надо расширить функционал какого-то компонента(который писал не я)

Женя
28.08.2018
15:41:42
Товарищи. Как вы работаете с коллекциями? Есть какие то практики?

Arsen
28.08.2018
15:42:10
А mixin только для подмешивания некоторых общих методов/полей/пропсов, во избежание одинакового кода в нескольких компонентах

Stivn
28.08.2018
15:44:42
как можно скомпилировать файл со всеми его зависимостями в один файл

Alex
28.08.2018
15:45:35

Vlad
28.08.2018
15:46:50

Alex
28.08.2018
15:47:13
Под капотом строит
Там обход идёт все равно

Vlad
28.08.2018
15:47:29
Под капотом на этапе сборки js ?

Alex
28.08.2018
15:48:03
Что бы решить вопрос дедубликации

Vlad
28.08.2018
15:49:08
Так каждый файл он просто оборачивает в анонимную функцию, заменяет импорты на вызов своей функции, и все. Дубликатов быть же не может

Alex
28.08.2018
15:49:11
Идея то такая же как в require js

Google

Vlad
28.08.2018
15:55:05

Alex
28.08.2018
15:59:46
Продолжай в том же духе ;)

Nutscracker
28.08.2018
16:00:32
Посоветуйте как быть? В реакте jquery - это как бы фу, не круто, хотя положа руку на сердце многие ui компоненты в либах таки используют jquery. В vue вроде более демократичны в этом отношении. Но в итоге я хз как лучше поступить, к примеру нужно мне табы реализовать, брать готовый компонент с бутстрапа например - где под капотом jquery. А дальше если мне нужно, пытаться как то vue логику сбоку припилить частично, чтобы за состоянием следить. Либо же это плохая идея вообще юзать ui компоненты бутстрапа и лучше взять какой то фреймверк типа bootstrap-vue или Vuetify и разбираться с их кривым апи?

Ivan
28.08.2018
16:02:45

Arsen
28.08.2018
16:02:58
extends: SomeComponent === mixins: [SomeComponent]

Ivan
28.08.2018
16:04:06

Alex
28.08.2018
16:04:35
Вроде так
Если ты наследуется то идёт prototype chain
Миксины в зависимости от реализации обычно уже экстендят экземпляр

Arsen
28.08.2018
16:06:02
Я смотрел исходники, там логика абсолютно одинаковая

Vlad
28.08.2018
16:06:03

Arsen
28.08.2018
16:06:03
https://github.com/vuejs/vue/issues/7412

Alex
28.08.2018
16:06:28
Без конкретики

Arsen
28.08.2018
16:07:25
https://github.com/vuejs/vue/blob/52719ccab8fccffbdf497b96d3731dc86f04c1ce/src/core/util/options.js#L381

Ivan
28.08.2018
16:08:28
Еще вопрос, как поступить. Нужно, чтобы при разном знаении пропса у формы ,импортился разный компонент с инпутом. Можно ли так сделать?

Arsen
28.08.2018
16:10:34
окей, спасибо) просто зачем тогда они нужны)
Короче, я юзаю миксины, когда надо подмешать одинаковый функционал в разные компоненты, при этом сам миксин не является компонентом и не может быть использован в шаблоне.
А extend юзаю в том случае, если надо расширить функционал уже существующего компонента, т.е. то, что указывается в extends является готовым к использованию компонентом

Google

Ivan
28.08.2018
16:11:15

Arsen
28.08.2018
16:12:44
Еще вопрос, как поступить. Нужно, чтобы при разном знаении пропса у формы ,импортился разный компонент с инпутом. Можно ли так сделать?
Юзай <component :is="componentName" />
где componentName это computed
import ComponentOne from './path/to/componentOne';
import ComponentTwo from './path/to/componentTwo';
export default {
components: { ComponentOne, ComponentTwo },
props: {
someProp: {
type: String, // Может иметь значения 'one' и 'two'
}
},
computed: {
componentName() {
const obj = {
one: 'ComponentOne',
two: 'ComponentTwo',
};
return obj[this.someProp];
},
},
};
</script>

Michael
28.08.2018
16:14:05
ретурн забыл

Arsen
28.08.2018
16:14:22

Michael
28.08.2018
16:14:39
ежжи ☝

Ivan
28.08.2018
16:15:37
Юзай <component :is="componentName" />
где componentName это computed
import ComponentOne from './path/to/componentOne';
import ComponentTwo from './path/to/componentTwo';
export default {
components: { ComponentOne, ComponentTwo },
props: {
someProp: {
type: String, // Может иметь значения 'one' и 'two'
}
},
computed: {
componentName() {
const obj = {
one: 'ComponentOne',
two: 'ComponentTwo',
};
return obj[this.someProp];
},
},
};
</script>
Да, спасибо) знаю, что так можно. Я имею ввиду, можно ли как не загружать совсем лишний компонент. То есть иметь один компонент, то испортом брать разный

Arsen
28.08.2018
16:15:52
Вопрос а нашо
Ну если тебе так сильно надо можешь попробовать вот так:
const ComponentOne = () => import('/path/to/componentOne');
(но я не уверен, что будет работать, надо проверить)
А логика смены компонентов такая же как выше
Только в данном случае компонент будет импортиться только тогда, когда его надо будет отрендерить

Kirill "Loskir" ?¹³
28.08.2018
16:23:13

Michael
28.08.2018
16:25:10

Ivan
28.08.2018
16:25:20

iPrior
28.08.2018
16:27:28

Kirill
28.08.2018
16:27:48
как лучше сделать, у меня есть 2 дива, с одинаковыми классами, нужно одному с дивов, добавить клас, через функцию при или после загрузки страницы

Kirill "Loskir" ?¹³
28.08.2018
16:29:25

Michael
28.08.2018
16:30:15

Kirill "Loskir" ?¹³
28.08.2018
16:30:23

Michael
28.08.2018
16:30:34

Google

iPrior
28.08.2018
16:30:42
не, я понимаю, что бывают ситуации когда хочется всё управление данными в одном месте держать
Расскажу ситуацию свою: у меня огромная форма состоит из примерно 50 компонентов разной вложенности, некоторые компоненты используются несколько раз, в разных контекстах.
Так вот, форма создания хорошо работает, что-то через props прокидываю и вроде всё хорошо.
Но вот как сделать форму редактирования? как данные уже ранее сохраненные в базе дотащить до компонентов?
Вот отседа vuex и вырос

Arsen
28.08.2018
16:33:13
Экспортить функцию, которая принимает компонент инпута и возвращает компонент формы с этим инпутом, но это извращение какое-то

iPrior
28.08.2018
16:34:35
и с vuex вроде всё отлично, но вот то что компонент, как-то, должен знать имя своего модуля в глобальном store..
Значит ли это, что с помощью чей-то матери и джентельменского соглашения, я называть модули компонентов при добавлении в глобальный store должен именовать, например storeComponentName?

Michael
28.08.2018
16:34:47

Dmitry
28.08.2018
16:35:00

Admin
ERROR: S client not available

Ivan
28.08.2018
16:36:23
ифами.
А как во вью с оптимизацией? если иметь много ифов и компонентов, которые не будут использоваться?

Dmitry
28.08.2018
16:38:09
Так что все хорошо

Michael
28.08.2018
16:42:07

Lao9s
28.08.2018
16:43:12
Hello,
i use Vuex .
In App.vue :
let _this = this;
_this.$Progress.start();
_this.$store.dispatch('getGenerale').then(function(){
_this.$Progress.finish();
});
in Form.vue i try to get this.$store.getters.generale with computed
computed: {
generale(){
return this.$store.getters.generale
}
}
but when i type in Form.vue in created() , i see lenght 0, because Ajax has not yet responded. How can I do this?

Michael
28.08.2018
16:44:01
it's quite hard to read

Alex
28.08.2018
16:44:37
then(() => this.$Progress.finish())
You can render your Form component right after data is set by ajax response
use v-if directive in App.vue with Form.vue component

Lao9s
28.08.2018
16:46:18
Form.vue is template of the route

Google

Alex
28.08.2018
16:47:13
what's the main problem with getting 0 in computed property?
you can't render something or getting error?

Nathan
28.08.2018
16:47:45
Vue.js — русскоговорящее сообщество
?

Alex
28.08.2018
16:47:58
нам не сложно и на английском ответить
;)

Nathan
28.08.2018
16:48:31
ok

Lao9s
28.08.2018
16:51:12
I'm sorry, it's hard to explain the problem, I have a complicated structure. Thank you, I find a solution

Alex
28.08.2018
16:51:36
you're welcome

Michael
28.08.2018
16:55:54

Lao9s
28.08.2018
16:55:55
I have resolved, i added a condition in the App.vue <router-view: key = "$ route.fullPath" v-if = "Object.keys (general) .length"> </ router-view>

Michael
28.08.2018
16:56:39

Lao9s
28.08.2018
16:57:20

Nutscracker
28.08.2018
17:02:43

Lao9s
28.08.2018
17:04:41

Michael
28.08.2018
17:10:07

Igor
28.08.2018
17:10:16
Юзаю mdbootstrap. Пытаюсь сделать модалку как в документашке
https://mdbootstrap.com/vue/advanced/modals/
Но в консоль выдаёт ошибку Uncaught ReferenceError: jQuery is not defined
Кто-нибудь сталкивался с этой дичью?