web-component 相关问题

Web组件是使用本机代码或第三方库创建的可重用客户端元素。

有没有办法观察自定义组件中的所有数据属性?

我正在尝试使用 vanilla javascript 构建一个自定义组件,该组件观察所有数据属性的变化,例如: 类 MyComponent 扩展 HTMLElement { 静态获取观察属性(){ ...

回答 1 投票 0

普通 JavaScript 中的 Web 组件

我创建了一个没有任何框架的小Web组件。这是我的index.html: 我创建了一个没有任何框架的小型 Web 组件。这是我的index.html: <!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <script src="clock.js" async></script> </head> <body> <clock-digital></clock-digital> <script> console.log(document.querySelector('clock-digital').cID); document.querySelector('clock-digital').method(); </script> </body> </html> 这是我的clock.js: customElements.define('clock-digital', class extends HTMLElement { get cID() {} set cID(value) {} constructor() { super(); var shadowRoot = this.attachShadow({ mode: 'open' }); var that = shadowRoot; this.cID = setInterval(function () { var currentdate = new Date(); that.innerHTML = `<div style="display: inline; background-color: whitesmoke; font-style: italic;">${currentdate.getHours()}:${currentdate.getMinutes()}:${currentdate.getSeconds()}</div>`; }, 500); } method() { console.log('method'); } }); 浏览器控制台显示此错误: undefined (index):14 Uncaught TypeError: document.querySelector(...).method is not a function at (index):14 为什么我的内联脚本无法访问 cID 和 method()? 您的内联脚本在导入clock.js之前运行(这是异步的,因为您已将 async 属性添加到 <script> 标记)。由于该元素是在 clock.js 中定义的,因此当您的内联脚本尝试访问它们时,<clock-digital>.method 和 <clock-digital>.cID 还不存在。 几个选项: 删除 async 标签,以便导入在内联脚本运行之前同步发生(demo)。您将失去异步加载的优势,但这对您来说可能不是问题。 超时后运行内联脚本(允许 clock.js 完成导入) 为了保持脚本异步 (async)(有时效果更好),您可以向 onload 元素添加一个 <script> 事件处理程序,该处理程序将调用您的内联脚本: <script> function init() { console.log(document.querySelector('clock-digital').cID); document.querySelector('clock-digital').method(); } </script> <script src="clock.js" async onload="init()"></script> WebComponents API 已经为您介绍过了。只需在此处使用 customElements.whenDefined(tagName) 承诺即可: customElements.whenDefined('clock-digital').then(() => { console.log(document.querySelector('clock-digital').cID); document.querySelector('clock-digital').method(); });

回答 3 投票 0

在 Web 组件中重写 setAttribute

我正在构建一个 Web 组件包装器。在此包装器中,我想在构建组件后动态定义观察到的属性。 据我了解,没有简单的方法可以做到这一点...

回答 1 投票 0

如何在 Web 组件中创建 Accordion 自定义元素

我正在尝试使用 javascript 中的自定义元素创建一个手风琴。 下面提到的 HTML 正如我在 HTML 中所写的 var Accordions = document.querySelectorAll(".accordion"); 为了...

回答 1 投票 0

如何获取派生类方法参数的类型?

我想创建一个将自定义 HTML 元素与一些附加属性和方法混合在一起的类:如果我扩展该类以创建新组件,则新组件将是自定义 HTML 元素...

回答 1 投票 0

如何在不使用attachShadow的情况下创建自定义元素?

假设我有一些这样的代码: 类 MyElem 扩展 HTMLElement { 构造函数(){ 极好的(); 让 templateContent = document.getElementById('template-elem').content; 这个。

回答 2 投票 0

在客户端使用Astro组件

我有这个组件 --- 从 '@components/Icons/Siren.astro' 导入 Siren; 从 '@util/job.interface' 导入类型 { IJob }; 导出接口 Props 扩展了 IJob{} const Job=Astro.props 常量 {com...

回答 1 投票 0

使用@mui创建reactjs Web组件库时出错

我想用来自@mui的个性化组件创建一个reactjs库 如果没有这样的组件,它可以正常工作,但是当我从中添加任何内容时,出现以下错误: index.js:647 警告:

回答 2 投票 0

querySelectorAll 不选择shadowRoot 中的元素

我正在尝试使用 Webpack 和 Web Component 创建一个 tic-tac-toe 游戏。 我需要在地点标记组件的shadowRoot中选择一个具有单元类的div标签,然后将innerText更新为O/X依赖...

回答 2 投票 0

如果属性具有变量作为值,CSS Cascade 对字体简写没有影响

假设我们有以下 CSS 自定义属性: // 全局 CSS :根 { --字体粗细-500: 500; --字体大小-350: 14px; --字体行高-500: 20px; --font-family-sans: 'Roboto Flex',

回答 1 投票 0

在ShadowDOM中使用CDK覆盖容器

我正在尝试在 Web 组件内使用 Angular Material 组件。除了 cdk-overlays 的一种边缘情况外,一切正常。到目前为止,我已经成功使用

回答 2 投票 0

如何在wordpress中使用lit web组件?

我使用 npm 制作演示版 Web 组件。 我想在 WordPress 中使用该点燃的 Web 组件。 如何在wordpress中使用它们? WordPress 中的点亮组件..?

回答 1 投票 0

如何防止Web组件闪烁?

考虑一个简单的 Web 组件 TimeAgo 类扩展 HTMLElement { 构造函数(){ 极好的(); this.innerHTML = '2小时前' } } customElements.define('时间前', TimeAgo); ...

回答 2 投票 0

自定义 DefineCustomElement 实现中缺少插槽

我们正在使用 Vue 3、TS 和 Tailwind 开发 Web 组件库。我们正在使用 DefineCustomElement 宏的自定义实现,其中 @tony19 能够提供像 vue-r 这样的插件支持...

回答 2 投票 0

如何告诉 CSS 我的 Web 组件属性已发生变化

如果您看我这里的简单示例,您会发现 test_button.html 有一些内联 CSS:- #myBtn[点击=“true”] { 不透明度:0.5; } 只要我经历过这似乎就有效

回答 1 投票 0

在 HTML 自定义元素中使用外部数据

我正在创建一个与 Vite 捆绑在一起的简单网站,但没有像 React、Vue、Svelte 等外部框架。该网站具有使用不同数据的重复 HTML 元素。我想使用自定义

回答 1 投票 0

如何在 Blazor 中使用 @bind (不是 @bind-Property)或绑定自定义元素的 DOM 属性?

我有一个自定义元素(呈现 Material Web 的 的 MdTextField),其作用与 类似。现在的问题是,当使用 @bind-Value 时,Blazor 所做的是

回答 1 投票 0

如何在用作 Web 组件的 Angular 应用程序中延迟加载组件? (如何从正确的服务器加载块?)

如何设置作为 Web 组件运行的应用程序,该应用程序必须从为 Web 组件提供脚本的服务器加载块,而不是尝试从服务器延迟加载...

回答 1 投票 0

CSS:您可以在 `:host()` 选择器中使用 `:has` 吗?

在下面的示例中,我尝试根据 **host** 是否具有具有空属性的开槽元素来设置其样式。如果确实有这样的元素,那么我想添加柠檬绿......

回答 1 投票 0

在 Astro 中使用第三方 Web 组件

我真的很想在astro中使用这个开关组件: https://cdn.jsdelivr.net/npm/@shoelace-style/[email protected]/cdn/components/switch/switch.js 这个文件(如果你点击它)有几个重要的...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.