preact 11 位手机号码格式化(格式化为'xxx xxxx xxxx')组件。
npm install preact-input-number
import { h, render, Component } from 'preact'
import InputNumber from 'preact-input-number'
import 'preact-input-number/lib/InputNumber.css' //默认的css,遵循BEM规范
class Main extends Component {
constructor (props) {
super(props)
}
dealNumberChange(e) {
const detail = e.detail
switch (detail.state) {
// 刚满11位
case 'EQUAL':
console.log('11未')
break
//从11位时进行删除时
case 'REDUCE_FIRST':
console.log('从11位删')
break
// 不足11位时的删减 NORMAL
default:
console.log('其他输入情况')
break
}
}
render (props, state) {
return (
<div id="app">
<h1>preact-手机号码组件测试</h1>
<InputNumber onclick={this.dealNumberChange.bind(this)}/>
</div>
)
}
npm run dev
npm run build
发布前先完成所有代码的 commit。然后执行
npm run publish
该命令会生成组件编译后的代码带 lib 文件夹,同时生成一个发版的 commit 和 tag 及更新 package.json 的版本(参考 standard-version)。然后推送到 npm 上
- 使用 prettier 格式化代码
- 支持在热加载页面上显示 eslint 结果
如果要取消在页面显示 eslint 结果,方法:
// webpack.dev.js ... devServer: { overlay: false, hot: true, // Tell the dev-server we're using HMR ... }, ...
- 自定义规则添加在 .eslintrc.js 的'rules'中,不建议修改
- eslint 配合 prettier 时无法格式化 css 文件
单独使用 prettier 时是可以的。个人认为是插件写的有问题。 所以,目前 css 的格式化请通过编辑器集成的 prettier 来实现,或者集成其他工具。倾向于前者。 在 webstorm 设置 prettier 的方法
- prietter 格式化的范围
- prettier 可以格式化如下文件:
- JavaScript, including ES2017
- JSX
- Angular
- Vue
- Flow
- TypeScript
- CSS, Less, and SCSS
- HTML
- JSON
- GraphQL
- Markdown, including GFM and MDX
- YAML 所以,强烈建议折佣 webstorm 配置 prettier,更好的格式化你的代码。
如果你的页面请求接口时涉及到跨域,可以使用接口 proxy 来设置接口转发。 设置方法: package.json 中的 proxy 字段
例如,如下这个配置会将对"/api/users"接口的房网重定向到http://t.c.m.163.com/api/users。 查看更多配置方法。
{
"proxy": {
"/api/users": {
"target": "http://t.c.m.163.com"
}
}
...
}