
Speed of
05.09.2018
09:16:22
ребят никто не понимает в чем косяк может быть?

Artyom
05.09.2018
09:16:39

Speed of
05.09.2018
09:16:49
почему от одного компонента на одной странице такие тупянки

Michael
05.09.2018
09:17:32

Google

Speed of
05.09.2018
09:17:57
просто один в панели, а другой в центре страницы, а тот который в панели тупит

Mike
05.09.2018
09:18:17

Дмитрий
05.09.2018
09:18:21

Artyom
05.09.2018
09:18:33
да да
И еще атрибуты туда преплести

Mike
05.09.2018
09:19:00

Дмитрий
05.09.2018
09:19:33
да да
по идее просто
<template src="template.pug" lang="pug" />

Artyom
05.09.2018
09:20:00

Дмитрий
05.09.2018
09:20:55

Siarhei
05.09.2018
09:22:27

Artyom
05.09.2018
09:29:49

Дмитрий
05.09.2018
09:33:17

Roman
05.09.2018
09:48:10
Ребята, использую миксин. После перехода на другуй страницу по роутер-линку, он как будто не подхватывается. Перезагружаешь страницу - все нормально, переходишь на вторую страницу - ошибка...

Google

Roman
05.09.2018
09:51:22
А, понял. При переходе на новую страницу продолжает выполняться функция со старой страници, а элемент, который она использует. уже не существует в DOM. А как её заставить перестать выполняться?

Alex
05.09.2018
09:51:50

Roman
05.09.2018
09:51:57
Все, понял...
В destroyed?

Alex
05.09.2018
09:53:19
что бы до перехода снять обработчик

Roman
05.09.2018
09:53:38
В destroyed?

Alex
05.09.2018
09:54:18
before destroy
потому что в destroyed у тебя уже не будет элемента
https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

Roman
05.09.2018
09:57:34
Спасибо, это понятно. Возможно, тупой вопрос, но как снять такой обработчик:
methods: {
scrollPage: function () {
let context = this;
window.addEventListener('scroll', function () {
context.showElems();
})
},
}

Arkadiy
05.09.2018
09:57:52
сохранить ссылку на обработчик

Roman
05.09.2018
09:58:27
То есть?

Arkadiy
05.09.2018
09:59:25
this.handler = function () {}
window.addEventListener('scroll', this.handler)
window.removeEventListener('scroll', this.handler)

Alex
05.09.2018
10:00:38
handler = this.handler.bind(this)
window.addEventListener(eventName, handler)
window.removeEventListener(eventName, handler)
можно сразу сделать функцию для unsubscribe и вызвать ее потом
this.unsubscribe = () => window.removeEventListener(eventName, handler)

Roman
05.09.2018
10:02:09
К сожалению, ни разу такого не делал... Спасибо, надеюсь разберусь.

Google

Alex
05.09.2018
10:02:17
стоит выучить js тогда )
это базовая работа с ивентами

Roman
05.09.2018
10:02:29
Хорошая идея ?

Arkadiy
05.09.2018
10:02:29
ну не суть, главное сохранить обработчик, а в каком контексте он нужен - это зависит от программиста

Alex
05.09.2018
10:02:47
продолбают контекст и потом удивляются

Arkadiy
05.09.2018
10:03:43
ну ок, мб там уже есть контекст, а мы его взяли и переписали у обработчика на новый

Andrey
05.09.2018
10:03:47
Ребят, всем привет. Подскажите, vue-cli (или другая утилита) может таргетированно взять один файл .vue, и сделать из него бандл? Конкретно один компонент

Arkadiy
05.09.2018
10:03:59
для того чтобы не терять контекст - есть стрелочные функции
и они ок
обычные функции js нужны уже реже

Mike
05.09.2018
10:04:33
Структура та же
вот так работает:
const path = require('path')
module.exports = {
css: {
loaderOptions: {
stylus: {
import: [
path.resolve(__dirname, './src/sass/_variables.styl')
]
}
}
}
}
но в доках vue cli 3 описан процесс только с sass. вы можете сказать есть подводные камни у этого способа?

Alex
05.09.2018
10:04:56
и некоторые внезапно пишут на es5
наличие сахара не освобождает от потребности понимать как это работает
а пихать везде стрелочные фукнции - это пиздец
зачем замыкание там где его не должно быть

Arkadiy
05.09.2018
10:06:11
чаще всего оно нужно чем нет

Alex
05.09.2018
10:06:13

Arkadiy
05.09.2018
10:06:28
но спорить не буду

Google

Alex
05.09.2018
10:06:33
чаще всего надо избавиться от контекста
для оптимизации работы с gc

Arkadiy
05.09.2018
10:07:49
ок, хорошо. Расскажите в каких ситуациях оптимизации такого рода оправданы?
игры?

Alex
05.09.2018
10:08:06
во всех случаях

Admin
ERROR: S client not available

Alex
05.09.2018
10:08:35
не допущение переиспользования памяти и тем более ее утечки - это атрибут хорошего программиста
могу скинуть список литературы для развития

Yan
05.09.2018
10:09:22

Arkadiy
05.09.2018
10:09:26
Хорошо, давайте, спасибо.

Yan
05.09.2018
10:09:35
Они чаще нужны чем нет
Да и пишутся короче

Alex
05.09.2018
10:09:50
еще раз - не все используются babel

Yan
05.09.2018
10:10:13

Roman
05.09.2018
10:10:18
Алекс, а можно так:
let context = this;
window.removeEventListener('scroll', context.showElems)
Так у меня все работало, а с байндом - ошибка...

Alex
05.09.2018
10:10:51

Mike
05.09.2018
10:11:07

Roman
05.09.2018
10:11:12
покажи как с байндом делал
scrollPage: function () {
let showElems = this.showElems.bind(this)
window.addEventListener('scroll', showElems)
},
destroyScrollPage: function () {
let showElems = this.showElems.bind(this)
window.removeEventListener('scroll', showElems)
},
},
mounted: function () {
this.$nextTick(function () {
this.showElems();
this.scrollPage();
})
},
beforeDestroy: function () {
this.destroyScrollPage();
}

Google

Alex
05.09.2018
10:11:34

Arkadiy
05.09.2018
10:11:38
> showElems
это props? скорее всего потер старый контекст.

Roman
05.09.2018
10:12:27
Ой, сори, метод

Alex
05.09.2018
10:12:30
Хорошо, давайте, спасибо.
https://www.labirint.ru/books/656404/
https://www.labirint.ru/books/632959/
https://www.labirint.ru/books/571060/
https://www.labirint.ru/books/643363/
https://www.labirint.ru/books/641481/
https://www.labirint.ru/books/634082/
https://www.labirint.ru/books/642466/

Yan
05.09.2018
10:12:35
Ух ес3

Alex
05.09.2018
10:13:00
создай unsubscribe функцию
и вызови ее в хуке потом

Arkadiy
05.09.2018
10:13:29

Roman
05.09.2018
10:13:33
Почему дважды?

Alex
05.09.2018
10:13:44
scrollPage: function () {
let showElems = this.showElems.bind(this)
window.addEventListener('scroll', showElems)
},
destroyScrollPage: function () {
let showElems = this.showElems.bind(this)
window.removeEventListener('scroll', showElems)

Mike
05.09.2018
10:13:50

Roman
05.09.2018
10:14:55

Arkadiy
05.09.2018
10:15:01
надо не забывать о ссылках в js

Alex
05.09.2018
10:15:08
scrollPage() {
handler = this.showElems.bind(this)
window.addEventListener('scroll', handler)
this.unsubscribe = () => window.removeEventListener('scroll', handler)
},
destroyScrollPage() {
this.unsubscribe()
}

Mike
05.09.2018
10:15:25
еще я видел style-resources-laoder https://cli.vuejs.org/ru/guide/css.html#%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D1%8B может его использовать, вместо loaderOptions? честно сказать я не совсем понял чем они отличаются, если не учесть, что loaderOptions как я понимаю указаные файлы до компиляции ипортирует а style-resources-laoder уже в каждый файл