Parasails.js и использование (Vue Router или virtualPages)

1

В документации virtualPages упоминается, что она поддерживает router и virtualPages, но на самом деле не указывает, как взаимодействовать с этими параметрами.

Я несколько привык к обычной настройке Vue, импортируя Vue, VueRouter и каждый отдельный компонент непосредственно в файл.vue.

Но с parasails.js, я чувствую, что эти параметры ожидают объекты, которые не определены в документации, поэтому я просто догадываюсь об этом.

Я дошел до этого момента:

parasails.registerComponent('mainSearch', {      
  props: [
    'prop1',
    'prop2',
  ],

  html5HistoryMode: 'history',
  virtualPages: [
    { path: '/foo', component: 'page2' },
  ],

  template: '
    <div class="test">
       <p>Test</p>
       <router-link to="/foo">Foo</router-link>
       <router-view />
    </div>
  ',

  beforeMount: function() {
    //…
    // Attach any initial data from the server.
    _.extend(this, SAILS_LOCALS);

  },
  mounted: async function(){
    //…
  },
  beforeDestroy: function() {
    //…
  },
});

Но я получаю ошибку:

TypeError: In the HTML template (during render): Cannot read property 'matched' of undefined

Кто-нибудь успешно использовал router или virtualPages в parasails.js и может мне помочь?

Кроме того, мой следующий вопрос: при передаче компонентов в virtualPages я просто virtualPages имя другого компонента, зарегистрированного в виде virtualPages, в виде строки? Или мне нужно включить этот компонент в код и передать его как объект, как в VueRouter?

Спасибо за любую помощь!

РЕДАКТИРОВАТЬ Использование virtualPages в компоненте с virtualPages по-видимому, не будет работать.

Но добавление этих свойств на страницу с парашютами представляется предполагаемым использованием:

  virtualPages: true,
  html5HistoryMode: 'history',
  virtualPageSlug: undefined,
  virtualPagesRegExp: /^\/test\/?([^\/]+)?/,

Теперь, хотя я больше не получаю ошибок, элемент <router-view></router-view> не заполняется надлежащим представлением, когда <router-link to="/test/foo/">Foo</router-link> на странице.

Я добавил следующий маршрут к проекту

  '/test/foo/' : {
    view: 'pages/test'
  },

Любые подсказки относительно того, почему мой просмотр маршрутизатора не обновляется должным образом?

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

Теги:
vue.js
vue-router
sails.js

1 ответ

3

Вы правы, эта ссылка, которую вы предоставили, походит на отсутствие какой-либо информации о том, как установить виртуальные страницы. Я не знаю много о том, как использовать только паразиты, но в Sails v1 так я устанавливаю виртуальные страницы. (Я использую это, главным образом, для создания связанных мод).

В вашем скрипте страницы вы определяете свои данные:

virtualPages: true, html5HistoryMode: 'history', virtualPageSlug: undefined, virtualPagesRegExp:/^\/foo\/bar\/?([^\/]+)?/,

В вашем файле ejs вы можете добавить это в div для обертывания:

v-if="virtualPageSlug === 'new'"

Файл маршрутов:

'GET/foo/bar/:virtualPageSlug?': { action: 'foo/view-bar' },

  • 2
    Я хочу добавить, что вам нужно включить <router-view></router-view> где-нибудь в файле шаблона Vue.
  • 0
    О, это верно! Спасибо @streleckify
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню