В документации 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'
},
Любые подсказки относительно того, почему мой просмотр маршрутизатора не обновляется должным образом?
Я думаю, что эта документация требует некоторых серьезных обновлений, так как это чистая игра-догадка на каждом шагу.
Вы правы, эта ссылка, которую вы предоставили, походит на отсутствие какой-либо информации о том, как установить виртуальные страницы. Я не знаю много о том, как использовать только паразиты, но в 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' },
<router-view></router-view>
где-нибудь в файле шаблона Vue.