在 vanilla JavaScript 中使用 WebC 构建 Web 组件

目录:

  • 什么是网络组件?

  • 为什么要使用网络组件?Web 组件规范Web 组件的局限性

  • WebC 如何提供帮助

  • 在 vanilla JavaScript 项目中使用 WebC 构建自定义 Web 组件在标签中使用属性webc:scopedstyle将 JavaScript 功能添加到我们的 Web 组件

  • 使用 WebC 进行渐进增强

什么是网络组件?

Web 组件是自定义的、可重用的和强封装的 HTML 组件,尝试复制文件时出错,源文件已损坏它们与库无关,可以在任何 JavaScript 项目中使用。

流行的网络组件的一个例子是标签<video>。安装程序未能正确安装此驱动程序,退出代码虽然video看起来像是单个 HTML 元素,但实际上它由多个 HTML 元素和定义其行为的自定义逻辑组成。

为什么要使用网络组件?

那么,为什么要使用 Web 组件呢?在较高的层次上,在 Excel、Word、PowerPoint 中找不到 Internet 服务器或代理服务器Web 组件的两个主要优点是封装和缺乏外部依赖性。

Web 组件通过允许您将 CSS 和 JavaScript 代码的影响限制在组件范围内来解决封装问题。

当然,React、Angular等流行的 JavaScript 框架也可以帮助你实现类似的封装效果。如何在 Windows PC 上禁用集成显卡那么,是什么让 Web 组件与众不同呢?这个问题给我们带来了第二个优势:Web 组件与库无关,您可以仅使用内置的 JavaScript API 来创建它们。

Web 组件与库无关的特性在设计 UI 组件库时特别有用。SecurityHealthSystray.exe 图像错误;它是什么?与为特定框架构建的其他库不同,您可以使用 Web 组件构建不耦合到单个技术堆栈的库。如何在 Windows 11/10 上获得 24 位音频这意味着任何人都可以使用它,无论他们的项目使用何种 JavaScript 框架。

Web 组件规范

通常,您在创建 Web 组件时会使用三种规范/技术:

  • 自定义元素:一种用于创建 HTML 元素以封装自定义 HTML、JavaScript 和 CSS 代码的 API

  • Shadow DOM:一种 API,阻止 Windows 更改音频设备用于将隐藏的 DOM 附加到不与应用程序其他部分的 CSS 或 JavaScript 代码冲突的元素

要了解有关这些规范的更多信息以及 Web 组件与 React 等 JavaScript 框架的比较,如何在 Windows 365 云电脑上启用 Hyper-V请查看此LogRocket 博客文章。

Web 组件的局限性

就像任何技术一样,Web 组件也有局限性。让我们简要介绍一下。

Web 组件要求浏览器允许在您的 Web 应用程序上运行 JavaScript,可信平台模块出现故障,Microsoft 365 应用程序激活错误即使您的 Web 组件纯粹是展示性的并且不包含任何交互式 JavaScript 代码。

通常,您需要以命令式而非声明式方式编写 Web 组件。修复 PhoneExperienceHost.exe 高 CPU 使用率如何禁用它?这会导致创作体验有些笨拙,尤其是在实施更高级的技术(如渐进增强)时。我们将在后面的部分中更详细地介绍这一点。

WebC 如何提供帮助

正如您可能已经猜到的那样,MiniTool ShadowMaker Pro 软件赠品;立即获取免费许可证!WebC 有助于解决使用 Web 组件时遇到的一些难题。

WebC是一个序列化程序,可以为 Web 组件生成标记。如何在 Brave 浏览器中更改默认搜索引擎它与框架无关,并提供各种有用的编译工具,使编写 Web 组件更加容易。

正如我所提到的,Web 组件通常需要 JavaScript 可用,如何在 Brave 浏览器中启用和使用 Tor即使对于其中没有任何 JavaScript 的 Web 组件也是如此。但是对于 WebC,情况并非如此。您可以创建纯 HTML 的 Web 组件,即使浏览器禁用了 JavaScript,如何播放 iPhone 的秘密雨声睡觉它们也会呈现。这是因为 WebC 获取您的 Web 组件代码并将其编译为简单的 HTML 输出。

WebC 在编写 Web 组件时提供了更好的创作体验。使用 WebC,您可以创建易于编写和维护的单文件 Web 组件。iPhone 14 现在有了新颜色:黄色它们整合了您的 HTML、CSS 和 JavaScript 代码,并使用模板和 Shadow DOM 等功能简化了流程。

而这只是触及表面:WebC 有更多的特性和自定义,为什么我的 iPhone 充电这么慢?使编写 web 组件成为一种更愉快的体验。查看他们的文档以获得所有功能和选项的更详细概述。

在 vanilla JavaScript 项目中使用 WebC 构建自定义 Web 组件

让我们看看 WebC 的实际应用!在本教程中,什么是 Apple 的自由格式应用程序以及如何使用它?我们将构建一个自定义组件,其中包含一个按钮和一个在您单击该按钮时会旋转的框。这是一个非常人为的例子,如何使用命令提示符创建 Windows 10 可启动 USB但它仍然可以帮助我们说明使用 WebC 的好处。

首先,您需要建立一个 JavaScript 项目。如何修复打印机共享在 Windows 11 上不起作用我将使用Vite快速启动一个新项目。

您还需要安装 Node.js;我们将使用它来运行我们的 WebC 编译脚本,如何在 Windows 11 上打开或关闭单声道音频该脚本将生成 Vite 将提供的静态文件。

设置项目后,运行以安装 WebC。接下来,让我们添加将注册 WebC 页面并将其内容写入项目根目录的脚本:yarn add @11ty/webcmain.jsindex.html

import { WebC } from "@11ty/webc";
import fs from "fs";
let page = new WebC();
page.defineComponents("components/**.webc");
page.setInputPath("page.webc");
let { html, css, js, components } = await page.compile();
fs.writeFile("./index.html", html, (err) => {
  if (err) {
    console.log({ err });
  }
});

所以,这是上面发生的事情:

  • 首先,我们实例化一个 WebC 页面对象。这是将包含我们的自定义 Web 组件的页面

  • 使用,我们定义页面的内容源。WebC 页面和组件通常有一个文件扩展名page.setInputPath("page.webc");.webc

  • 使用,我们定义了保存 Web 组件的文件夹page.defineComponents("components/**.webc");

  • 我们调用将页面内容聚合并编译成静态 HTML 输出page.compile()

  • 最后,我们将输出的 HTML 写入文件index.html

在我们继续之前,让我们简要介绍一下页面和组件之间的区别。如何在 Windows 10 上使用命令更改屏幕分辨率<!doctype在 WebC 中,页面是以或开头的文件<html,通常用于显示整个页面。

组件是用于显示可重用 UI 片段或片段的任何其他 WebC 文件。

现在,让我们创建我们的文件并尝试运行我们的脚本。如何清除谷歌浏览器的缓存该文件将包含一个基本的 HTML 页面设置:page.webc

<!-- HTML-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebC tutorial</title>
  </head>
  <body>
    <my-component></my-component>
  </body>
  <style>
    body {
      padding: 20%;
    }
  </style>
</html>

您可能已经注意到,这看起来就像我们的标准 HTML,Windows 11 build 22000.1641 (KB5022905) 作为预览版发布那是因为它就是!使用 WebC,您可以使用常规的 HTML、JavaScript 和 CSS,但在少数情况下您需要添加一些 WebC 语法。

现在让我们尝试运行我们的脚本。您只需使用命令即可运行它。不过,为了获得更好的开发人员体验,我建议使用 nodemon。如何清除谷歌浏览器的缓存它将获取您对脚本所做的任何更改并自动重新运行该文件。node main.js

这是我在本教程中使用的 nodemon 命令:

nodemon main.js -e js,webc,html

接下来,让我们通过创建components文件夹并将文件放在那里来添加我们的 Web 组件。Windows 11 对 Apple M2 和 M1 Mac 的支持到来让我们添加以下内容:my-component.webc

<!-- HTML-->
<div id="rectangle"></div>
<button id="flipper">Flip</button>
<style webc:scoped>
  #rectangle {
    background-color: skyblue;
    width: 40px;
    height: 160px;
    border: 2px #4ba3c6 solid;
  }

  button {
    margin-top: 12px;
    width: 40px;
  }
</style>

同样,我们使用简单的 HTML 和 CSS 为我们的框设置按钮和 并设置样式div。

在标签中使用属性webc:scopedstyle

上面示例中值得注意的部分是我们标签中的属性。如果您仍然无法访问 Bing AI,You.com 提供 AI 聊天机器人搜索此标记允许您将 CSS 代码封装在组件中。webc:scopedstyle

当您将此属性添加到style标记时,WebC 会在编译期间自动生成一个唯一的散列字符串类并将其分配给您的组件元素。然后,WSL 在 Windows 11 上获得视频硬件加速它会在您在组件内声明的所有 CSS 选择器前面加上该哈希字符串的前缀。

流行的样式库喜欢emotion并使用类似的哈希生成机制在自定义组件中包含样式。Xbox 2023 年 2 月更新新功能styled-components

将 JavaScript 功能添加到我们的 Web 组件

到目前为止,我们已经定义了 Web 组件的外观,应用安装程序不支持安装此应用程序包但它并没有做太多事情。让我们为交互添加一些 JavaScript 代码。

在同一个 Web 组件中,在style标记的正下方,麦克风在 Windows 11/10 上的 Xbox 应用程序中不工作添加一个script具有以下 JavaScript 代码的标记:

<!-- HTML-->
<script>
  let deg = 0;
  document.getElementById("flipper").onclick = () => {
    const rectangle = document.getElementById("rectangle");
    const nextDeg = deg === 0 ? 90 : 0;
    rectangle.style.transform = `rotate(${nextDeg}deg)`
    deg = nextDeg;
  }
</script>

在这里,我们只是onclick向我们的按钮添加一个侦听器,如何在 GIMP 中制作渐变通过更新样式属性来旋转矩形transform。请注意,我们不必使用 ; 如何在不损失质量的情况下在 GIMP 中调整图像大小全局定义我们的 Web 组件。我们只是添加了 JavaScript 代码来为我们的按钮提供动力。customElements.define

这就是它的全部。现在我们有了一个功能正常但简单的 Web 组件。加密服务高磁盘或 CPU 使用率如果您要使用扩展程序为本地服务器关闭 JavaScript ,如何在 Photoshop 中对照片进行色调分离我们的 Web 组件仍会显示,但该按钮不会执行任何操作。

使用 WebC 进行渐进增强

WebC 的另一个强大功能是简化向您的应用程序添加渐进式增强功能的过程。

渐进增强是一种允许用户首先访问网站的基本内容和功能的模式。如何在 Word 中写分数之后,如果用户的浏览器功能和互联网连接允许,用户将获得 UI 增强和更多交互功能。

让我们通过在 JavaScript 可用之前禁用按钮来为我们的组件添加一个简单的渐进式增强处理。

首先,我们需要更新标签中的代码script:

<!-- HTML-->
<script>
  let deg = 0;
  class MyComponent extends HTMLElement {
    connectedCallback() {
      document.getElementById("flipper").onclick = () => {
        const rectangle = document.getElementById("rectangle");
        const nextDeg = deg === 0 ? 90 : 0;
        rectangle.style.transform = `rotate(${nextDeg}deg)`
        deg = nextDeg;
      }
    }
  }
  window.customElements.define("my-component", MyComponent)
</script>

在这里,我们使用标准模式来定义 Web 组件,如何在 InDesign 中将一个图像放置到多个框架中以便能够等待 JavaScript 可用。window.customElements.define

现在让我们将 CSS 处理添加到我们的按钮:

<!-- HTML-->
<style webc:scoped>
  #rectangle {
    background-color: skyblue;
    width: 40px;
    height: 160px;
    border: 2px #4ba3c6 solid;
  }

  button {
    margin-top: 12px;
    width: 40px;
  }

  :host:not(:defined)>button {
    opacity: 0.2;
    cursor: not-allowed;
  }
</style>

如您所见,我们正在使用选择器。如何通过电话、姓名等查找电子邮件地址此选择器来自 Shadow DOM API,允许您在加载 Web 组件时为其定义特殊样式。:host:not(:defined)

不过,WebC 确实对其进行了调整:编译代码时,如何在 Windows 11/10 中将 RAR 转换为 ISO?它将用生成的哈希字符串类替换该部分。:host

现在,如果您要为您的本地服务器关闭 JavaScript,如何从 Apple iCloud 中删除或恢复照片您会看到该按钮变灰,更明显的是该按钮没有执行任何操作。

您可以使用相同的模式为您的网页提供任何您想要的渐进式增强处理。

结论

这篇文章就是这样。我们回顾了 Web 组件、它们的用例以及它们与 JavaScript 框架的比较。

此外,修复 NBA 2K 中的错误代码 56d85bb8:连接问题我们还讨论了 WebC 如何减轻 Web 组件的一些缺点并帮助我们获得它们的全部好处。

猜你喜欢

转载自blog.csdn.net/weixin_47967031/article/details/129953966