# y-web-components **Repository Path**: worldzb/y-web-components ## Basic Information - **Project Name**: y-web-components - **Description**: 使用 vue 文件模式编写 web components - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-06-06 - **Last Updated**: 2022-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # web-components-cli ---- 使用 Vue SFC 模式编写 Web Components ## 安装 ``` npm i -g y-web-components-tools or yarn add -g y-web-components-tools ``` ## 使用 ### 创建 .wcp (web components 的缩写)文件 采用 vue 三段式书写方式 ``` html // test.wcp ``` ### 文件转译 ``` shell ywcp build test.wcp ``` 该命令会在 wcp 文件下生成相同的 js 文件,内容如下 ``` javascript const __template__ = `
box
` class BlueBox extends HTMLElement{ constructor(){super("fff") this._rootShadow = this.attachShadow({mode:'open'}) this._rootShadow.innerHTML = __template__ } connectedCallback(){ setTimeout(() => { this.eventBind() }, 200); } eventBind(){ this._rootShadow.querySelector('.container').onclick = function(){ console.log('aaa') } } } customElements.define("blue-box", BlueBox) ``` ## 目录监听 单个文件可使用 `ywcp build *.wcp` 来进行转译,但是如果一个项目中有多个 `wcp` 文件时,再去手动转译时就 会比较麻烦,此时可用 `ywcp watch` 进行目录的监听。该命令会持续监听 wcp 文件的变动,并实时在文件同级目录 下生成 js 文件 ## scss wcp 文件现已支持 scss 文件的转译,和 vue 中使用方法相同, 只需要添加 `lang="scss"` 即可使用。 > 关于 scoped 的问题 > 由于 web components 天然支持 style 隔离, 所以无需添加 scoped ## 相关 [web components 开发](https://developer.mozilla.org/zh-CN/docs/Web/Web_Components/Using_custom_elements#%E6%A6%82%E8%BF%B0)