Лучший способ настроить SPA-маршрутизатор с lit-element и simple-wc-router с помощью веб-пакета.
В настоящее время у меня это работает, но мне интересно, есть ли лучший способ собрать все это вместе.
webpack-config.js:
module.exports = ({ mode, presets }) => {
return webpackMerge(
{
entry: {
app: './src/index.js'
},
index.js
import './app-router.js';
window.addEventListener('load', () => {
initRouter();
});
function initRouter() {
var approuter = document.createElement("app-router");
document.getElementsByTagName("BODY")[0].append(approuter);
}
app-router.js
import { LitElement, html } from 'lit-element';
import { Router } from 'simple-wc-router';
import './ui/side-panel.js';
import './admin/admin-home.js';
class AppRouter extends Router(LitElement) {
static get routes() {
return [
{
path: "/admin",
component: 'admin-home',
import: () => {
console.log('path /admin...');
import(/* webpackChunkName: "adminutils" */ './admin/admin-home');
}
},
{
path: '/admin/billing',
component: 'admin-billing',
import: () => import(/* webpackChunkName: "adminutils" */ './admin/admin-billing')
},
{
path: "*",
component: 'not-found-view',
import: () => import(/* webpackChunkName: "not-found-view" */ './views/not-found-view')
}
];
}
В настоящее время это работает,Но чтобы использовать элемент app-router, который имеет логику маршрутизации, я должен добавить элемент HTML.
Для документов LitElement: https://lit -element.polymer-project.org / guide / use способ использования компонента после импорта будет
<app-router></app-router>
Я не смог найти способ использовать веб-компонент без html-части, поэтому: document.getElementsByTagName ("BODY") [0] .append (approuter);
Есть ли более элегантный способ использованияВеб-компонент app-router?
Есть ли лучший способ настроить компонент маршрутизации, если мы используем веб-пакет?