gpt4 book ai didi

javascript - 无法渲染 Web 组件

转载 作者:行者123 更新时间:2023-12-02 21:22:50 26 4
gpt4 key购买 nike

我无法渲染我的 Web 组件。我创建了一个类HelloWC.ts它只有一项任务(在<h2>标签内渲染Hello)。我用过tsconfig.json定义如何构建包含 HelloWC/dist 目录类已转换为 es6。在 index.html文件中,我添加了 <script>标签(在 <body> 的末尾),我在其中导入了我的 HelloWC来自 /dist 目录的组件。然后我想渲染我的 <hello-wc>内部组件index.html <body>标签。如果我检查我的index.htmlserver-http 提供服务我可以看到有一个<hello-wc></hello-wc>标签,但它是空的。在网卡中我还可以看到HelloWC.js已成功下载。我还添加了一个简单的console.log()到我的组件的构造函数,但从未记录该消息(看起来我的组件从未创建)。我不知道为什么我的组件无法正确渲染。如果您有任何想法请告诉我。

HelloWC.ts

const template: string = `<div>
<h2>Hello</h2>
</div>`;

export class HelloWC extends HTMLElement {
shadowRoot!: ShadowRoot;

public static TAG = 'hello-wc';

constructor() {
super();
console.log('heelo wc');
this.attachShadow({ mode: 'open'});
this.shadowRoot.innerHTML = template;

}
}
customElements.define(HelloWC.TAG, HelloWC);

index.html

<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Hello WC</title>
</head>
<body>
<hello-wc></hello-wc>
<script src="/dist/HelloWC.js" type="module"></script>
</body>
</html>

tsconfig.json

{
"compilerOptions": {
"module": "umd",
"target": "es6",
"sourceMap": true,
"noImplicitAny": true,
"strictNullChecks": true,
"removeComments": true,
"moduleResolution": "node"
},
"exclude": [
"src",
"node_modules",
"dist"
]
}

项目结构

enter image description here

最佳答案

您似乎正在将编译后的文件作为 ES 模块导入,但是,tsconfig.json 您已指定 "module": "umd" (它应该是 es6esnext 而不是 umd(如果您想要 ES 模块)

关于javascript - 无法渲染 Web 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60805918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com