Может ли vuejs сломать дурандальный роутер? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь включить Vuejs в существующий проект. Я знаю, я бы все переписал. Но я действительно не могу. Дело в том, что мне действительно нужна система компонентов vuejs. Почему вуэйс, а не реагируют и другие? Поскольку vuejs можно постепенно добавлять в существующий проект и использовать без новых функций javascript (ES5, ES6 и т. Д.), Я не могу добавить это в свой проект.

Так что проблема в том, что я пытаюсь добавить систему компонентов vuejs в мой проект. Что я сделал : Требовать файл vuejs из cdn (используя requireJs) Используйте мой экземпляр в моих нокаут-моделях для создания компонента.

var vue = new Vue({
                        el: '#app',
                        components: {
                            foo: {
                                template: '<div>Hello {{name}}, how are you ?</div>',
                                data: function() {
                                    return { name: "Foo" }
                                },
                                created: function() {
                                    // `this` est une référence à l'instance de vm
                                    console.log('name is: ' + this.name);
                                }
                            }
                        }
                    });

и мой элемент #app имеет что-то вроде этого:

<div class="view" id="app">
<p>Some paragraph</p>//displayed
<h1>Some title</h1>//displayed

<foo></foo> //my component, displayed
<div data-bind="router: { transition:'fadeInOut' }"></div>//the route content, which is not displayed ... and it should
<div>
</div>

Посмотрите на комментарий в HTML, чтобы увидеть, что отображается, а что нет. Поэтому без экземпляра Vuejs содержимое моего маршрута отображается правильно.

Надеюсь, я был чист. Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать! Так возможно ли достичь этого и решить проблему?

1 Ответ

0 голосов
/ 21 июня 2019

То есть, как я вижу, в зависимости от того, ударил ли Vue первым или вторым (не могу судить только из вышеперечисленного):

  • first - содержимое элемента id="app" заменяется на Vue, поэтому привязка маршрутизатора исчезла.
  • секунда - включается маршрутизатор (в некоторой степени это асинхронно), затем Vue подставляет содержимое элемента id="app".

Результаты в обоих случаях являются разрушительными. Вы можете попытаться нацелить меньшие части приложения с помощью Vue, а не root - прогрессивное улучшение.

...