@flokiowl
HTML-верстальщик

Куда писать «обычные» скрипты во Vue js?

Добрый вечер. Изучаю Vue js, и у меня появился такой вопрос: куда писать стандартные, всем привычные скрипты, например плавный скролл...я подумал, что нужно использовать хуки, но так возникла проблема:
Есть у меня такой простецкий код, и он работает, но если я перейду на другой роут, а потом вернусь на этот же, в консоле пишет ошибку: "Uncaught TypeError: Cannot read property 'style' of undefined"
P.S при этом скрипт продолжает работать

created () {
    window.addEventListener('scroll', () => {
          let el = this.$refs.parallax;
          let val = document.documentElement.scrollTop / 100;
          el.style.filter = `blur(${val}px)`;
    })
}
  • Вопрос задан
  • 760 просмотров
Пригласить эксперта
Ответы на вопрос 2
@veremii
говнокодю на js
Я бы вам советовал подучить хуки и что происходит в вашем случае. Вы инициализирует скролл в руке created, однако на этом хуке компонен ещё не находится в дом дереве поэтому вы ловите ошибку. Вам нужно использовать этот же код в хуке mounted.
Ответ написан
@flokiowl Автор вопроса
HTML-верстальщик
Кое что всё таки нашел, возможно кому-то поможет решение:

methods: {
		blur () {
			let el = this.$refs.parallax;
			let val = document.documentElement.scrollTop / 100;
			el.style.filter = `blur(${val}px)`;
		}
	},
	created () {
		window.addEventListener('scroll', this.blur)
	},
	destroyed () {
		window.removeEventListener('scroll', this.blur);
	}


P.S в хуках жизненного цикла vue нельзя использовать стрелочные функции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Junto Москва
от 90 000 до 120 000 руб.
Admitad Projects Москва
от 90 000 до 140 000 руб.
от 100 000 до 130 000 руб.
07 дек. 2019, в 18:02
2000 руб./за проект
07 дек. 2019, в 17:26
400 руб./в час
07 дек. 2019, в 17:09
1000 руб./за проект