@anypoint-web-components/validatable-mixin

中文文档
1.1.3发布于 2020/09/28Apache-2.0ESM + CJS近 30 天下载 3243

A mixin to implement user input validation in a LitElement component

原始使用文档
文档目录8 节
  1. Accessibility
  2. Usage
  3. Installation
  4. Using _getValidity() function
  5. Using custom validators
  6. Development
  7. Running the demo locally
  8. Running the tests

Published on NPM

Build Status

ValidatableMixin

A mixin to implement user input validation in a LitElement component.

This validatable supports multiple validators.

Use ValidatableMixin to implement an element that validates user input. Use the related ArcValidatorBehavior to add custom validation logic to an anypoint-input or other wrappers around native inputs.

To implement the custom validation logic of your element, you must override the protected _getValidity() method of this mixin, rather than validate().

Accessibility

Changing the invalid property, either manually or by calling validate() will update the aria-invalid attribute.

Usage

Installation

npm i @anypoint-web-components/validatable-mixin --save

Using _getValidity() function

import { LitElement, html } from 'lit-element';
import { ValidatableMixin } from '@anypoint-web-components/validatable-mixin';

class InputValidatable extends ValidatableMixin(LitElement) {
  render() {
    return html`<input @input="${this._onInput}"/>`;
  }

  _onInput(e) {
    this.validate(e.target.value);
  }

  _getValidity(value) {
    return value.length >= 6;
  }
}
window.customElements.define('input-validatable', InputValidatable);

Using custom validators

<cats-only message="Only cats are allowed!"></cats-only>
<input-validatable validator="cats-only"></input-validatable>

<script>
import { LitElement } from 'lit-element';
import { ValidatorMixin } from '@anypoint-web-components/validator-mixin';
import { ValidatableMixin } from '@anypoint-web-components/validatable-mixin';

class CatsOnly extends ValidatorMixin(LitElement) {
  validate(value) {
    return value.match(/^(c|ca|cat|cats)?$/) !== null;
  }
}
window.customElements.define('cats-only', CatsOnly);

class InputValidatable extends ValidatableMixin(LitElement) {
  render() {
    return html`<input @input="${this._onInput}"/>`;
  }

  _onInput(e) {
    this.validate(e.target.value);
  }
}
window.customElements.define('input-validatable', InputValidatable);
</script>

Development

git clone https://github.com/anypoint-web-components/validator-mixins
cd validator-mixins
npm install

Running the demo locally

npm start

Running the tests

npm test

版本与发布记录

@anypoint-web-components/validatable-mixin 共发布 7 个版本,首次发布于 2019/06/24;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.3latest2020/09/286 年前
1.1.22020/09/226 年前
1.1.12020/05/156 年前
1.1.02020/05/156 年前
1.0.22019/09/047 年前
1.0.12019/08/017 年前

关于 @anypoint-web-components/validatable-mixin 的常见问题

@anypoint-web-components/validatable-mixin 是什么?

A mixin to implement user input validation in a LitElement component

如何安装 @anypoint-web-components/validatable-mixin?

在项目目录运行 npm install @anypoint-web-components/validatable-mixin,或使用 pnpm add / yarn add / bun add。

@anypoint-web-components/validatable-mixin 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/anypoint-web-components__validatable-mixin 是否存在。

@anypoint-web-components/validatable-mixin 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@anypoint-web-components/validatable-mixin 可以商用吗?

@anypoint-web-components/validatable-mixin 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@anypoint-web-components/validatable-mixin 的下载量有多少?

根据 npm 官方下载统计,@anypoint-web-components/validatable-mixin 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,243 次,日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anypoint-web-components/validatable-mixin 还在维护吗?

最新版本 1.1.3 发布于 2020/09/28(6 年前);至今共发布 7 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/06/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。