#javascript #vue.js #vuejs2
#javascript #vue.js #vuejs2
Вопрос:
У меня есть приложение Rails. Иногда на страницах я размещаю компоненты Vue. Это могут быть простые динамические списки. Но также может существовать более сложная реализация со множеством компонентов, вложенных друг в друга.
Сначала я покажу вам, как все это работает (код).
Часть кода с основного уровня в приложении Rails:
body
#app
= yield
И часть кода из JS:
if (document.getElementById('app')) {
new Vue({
el: '#app',
А теперь о проблеме.
Иногда, когда я открываю браузер, я загружаю страницу без компонентов Vue. Эта проблема одинаково актуальна в macOS Chrome / Safari и iOS Safari. Но если я вручную перезагружу страницу, то все будет в порядке.
В чем может быть проблема? Почему браузер быстро загружает страницу после запуска (возможно, из кэша?) и плохо реагирует на Vue?
Комментарии:
1. Используете ли вы turbolinks и webpacker?
2. @Sovalina только веб-браузер.
Ответ №1:
Выполните код, когда DOM будет готов:
document.addEventListener('DOMContentLoaded', (event) => {
if (document.getElementById('app')) {
new Vue({
el: '#app',
...
})
Комментарии:
1. Спасибо. Я попробую ваш вариант. В течение нескольких дней посмотрите, как это будет работать.