Может ли кто-нибудь поделиться подробной информацией о том, как создать приложение одиночной страницы (SPA) в Liferay 7, используя SennaJS. я could't нашел какую-либо документацию о том, как создать SPA в Liferay 7.Как создать одностраничное приложение в liferay 7?
ответ
Он поставляется по умолчанию, за исключением, если вы сбросить следующее свойство:
javascript.single.page.application.enabled = истина
Кстати, это довольно неприятно для экземпляров dev, поскольку для загрузки страниц в первый доступ требуется некоторое время, иногда вам даже нужно перезагружать страницу. Кроме того, имейте в виду, что в некоторых случаях некоторые приложения могут сломаться, как правило, из-за кода, который считает, что перезагрузка страницы функционирует должным образом.
Независимо от того, какой портлет вы собираетесь создавать и развертывать с помощью Liferay SDK/Workspace ИЛИ любого совместимого плагина liferay, по умолчанию это будет SPA. Не нужно делать какие-либо кодировки поверх него.
вы можете создать его в 6.2, используя следующий код.
// initializing senna
var app = new senna.App();
// Set links selector for navigations
app.setLinkSelector(".senna-link");
// set basic path of liferay site
app.setBasePath('/web/spa-demo/');
// Id of DOM element which will be replaced from
// next page request
// using content div - default in liferay theme
app.addSurfaces('content');
// define routes for all the navigation links
// route link = Base path + page link
app.addRoutes([
new senna.Route('home', senna.HtmlScreen),
new senna.Route('second', senna.HtmlScreen),
new senna.Route('third', senna.HtmlScreen),
]);
вещь, которую вы должны заботиться, если это SPA, то все события должны быть связаны первый т.е. делегат, пока не будет обновления страницы.
такие вещи, как document.getReady, будут называться только один раз.
https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/automatic-single-page-applications – Issamovitch