Использование темы CSS/JS/jQuery с Vue.js

В настоящее время я пишу небольшой статический сайт и решил использовать Vue.js, так как использовал его в прошлом без особых проблем. На этот раз я должен использовать готовый шаблон, основанный на jQuery/Bootstrap, и большая часть тяжелой работы выполняется с помощью JS.

Я пытаюсь использовать Шаблон Порту. Я смог преобразовать основы (CSS, добавить маршрутизатор и т. д.), но я борюсь со стороной JS. Из того, что я смог понять, различные «компоненты», исходящие из шаблона, активируются после загрузки всей страницы. Сценарий инициализации проходит через HTML DOM и «активирует» их.

Обычно это работает нормально, особенно при использовании старого подхода в стиле jQuery, но из-за жизненного цикла Vue для компонентов JS не выполняется повторно, как только на странице появляется новый компонент, поэтому он выглядит так, как будто он не работает.

Наиболее логичным подходом было бы взять каждый компонент Porto и разделить его на компоненты Vue, с собственным JS и т. д. Но это означает, что любое обновление шаблона потребует полной перезаписи, не забывая при этом о количестве работы по созданию первая версия.

В настоящее время я попытался обернуть импорт <script> в компонент и вставить его на страницу. Моя идея состояла в том, чтобы затем использовать метод this.$forceUpdate() для принудительного повторного рендеринга, но это не удается.

Любые другие идеи?

Если ваша тема требует, чтобы методы jQuery вызывались для инициализации вещей, вам нужно будет исследовать вызов этих методов в опции mounted Vue. Ссылка vuejs.org/v2/api/#mounted

Taplar 11.02.2019 19:55

Я согласен с тем, что вы говорите, но, как я уже сказал в вопросе: «Наиболее логичным подходом было бы взять каждый компонент Porto и разделить его на компоненты Vue, с их собственным JS и т. д. Но это означает, что любой обновление шаблона потребовало бы полной перезаписи, не забывая при этом о том объеме работы, который был проделан для создания первой версии». Я пытаюсь найти способ избежать этого

ruben1691 11.02.2019 20:22

Миксины не помогут? vuejs.org/v2/guide/mixins.html

muka.gergely 11.02.2019 20:55

Да, миксины определенно помогли... кажется, это работает, хотя мне пришлось скопировать и вставить содержимое файла в миксин. Есть ли способ импортировать файл и выполнить его? Я знаю, что импорт ES6 оценивается только один раз, и мне нужно переопределить это поведение.

ruben1691 14.02.2019 15:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
229
0

Другие вопросы по теме