React Snippets Angile Code
关注 react 开发中细微动作的提效工具
除了 【snippets】【翻译】【AngileCode】模块,【组件提示】【className提示】 依赖 .angilecoderc 或者自定义的 JSON 配置文件.
内置的 snippets
一些常用的代码可以用内置的命令调用出来,节约时间,开箱即用
内置的 snippets 原作者地址 vscode-react-typescript-boilerplate
acreact
acreactprops
acstate
aceffect
actaimeiui
aclessmodule
内置的 翻译
单词想不起来,命名又不想用 a1 b2 ? 那 AngileCode的 翻译适合你
翻译采用 有道翻译【默认】 -(暂时只支持词语,不支持长句) 或者 Google 翻译 -(支持长句,各种复杂句,科学上网才会生效)
可通过 AngileCode 配置切换
选中要翻译的单词或者逗号隔开的单词,点击小图标(或者 Cmd + F12 on macOS or Ctrl+F12 on Windows and Linux),即可完成翻译
- 可通过设置,保留翻译前文字,多个单词默认返回驼峰命名
 

内置的 快捷结构输入
通常我们在写布局时,特别使用 css module 时,在输入 className,会有以下的反复操作
[反复删除逗号,style 属性重复书写]

 
很是费时费力,有了 angileCode 现在你可以这么操作 (可以设置多个类名)

 
还可以通过设置保留命名的类名,方便 copy 到相应的 css 位置, 当然我们还可以设置全局 className 提示

 
当然 AngileCode 还支持同级 符号:"|"【目前只支持一级】 子父级符号:">" 常用的 style / attr 属性 常用代码

- 如果你没有使用 
css module 的习惯,可以在配置中关闭 style. 这种形式命名

 
// 快捷属性输入
div(attr=`ariahidden: "2", className:'test'`)
// 快捷style输入
div(style={{color: 'red', fontSize: 14}}).classname
// 常用布局
div().flexclass.attrclass > div().nodeleft | div(style={{color: 'red'}}).noderight
div().textRequired > div(attr=`ariahidden: "2", className:'test'`) | div(style={{color: 'red'}}).right
div().item > 属性:| b(style={{color: 'red'}}).sd > {}
以下是通过配置 .angilecoderc 或者自定义文件路径 获取的功能
Tips: ${1:内容} 理解为光标所在的第一个位置,内容可为空,不为空说明当前内容可全部被替换 (可设置多个),${2:内容} 为按下 tab 键的第二个位置 (可设置多个),以此类推${n+:内容}
数据结构要求如下
interface IDescribe {
    // 可选项
    options: string[];
    // 描述
    description: string;
    // 传参类型
    parameterType: string;
    // 默认值
    defaultValue: string;
}
interface IAttributes {
    [AttributesName: string]: IDescribe;
}
interface IComponentParametersItem {
    // 是否是代码片段 目前仅支持 < 开头【组件类型】
    snippet?: Boolean;
    // 描述
    description: string;
    // 默认属性
    defaults?: string[];
    // 子集 字符串
    content?: string;
    // 类型集合
    attributes?: IAttributes[];
}
interface IComponentParameters {
    [componentName: string]: IComponentParametersItem;
}
interface ClassNameItem {
    // 类名
    label: string;
    // 描述
    description: string;
}
interface IComponentClassName {
    // 组件 配置
    component?: IComponentParameters;
    // classname 配置
    classname?: ClassNameItem[];
}
// 示例代码 <IComponentClassName>
{
    "component": {
        // 组件名称
        "Button": {
            // 默认属性值 <?:可选参数 string[]>
            "defaults": ["type='primary'", "onClick={() => {${1:}}}"],
            // 内置的属性 <?:可选参数 [name:srting]: {}>
            "attributes": {
                "type": {
                    // 属性值 string[]
                    "options": ["primary", "dashed", "danger", "link"],
                    // 描述 string
                    "description": "设置按钮类型",
                    // 类型  string
                    "parameterType": "string",
                    // 默认值  string
                    "defaultValue": "-"
                },
                "size": {
                    "options": ["small", "large", "default"],
                    "description": "设置按钮大小",
                    "parameterType": "string",
                    "defaultValue": "default"
                }
            },
            // 组件描述 string
            "description": "按钮用于开始一个即时操作。",
            // 组件内部填充的数据 string
            "content": "这是个按钮的内容${2:}"
        },
        "表格": {
            // 设置成 true 时,自动转成 snippet, content目前仅支持 < 开头【组件类型】
            "snippet": true,
            "description": "表格",
            "content": "<Form.Item>$1</Form.Item>"
        },
        "ac-Popover": {
            "snippet": true,
            "description": "通用Table",
            "content": "<Popover content={${1:}} title=\"${2:title}\">\n    <Button type=\"primary\" onClick={() => {${3:}}}>${3:Hover me}</Button>\n  </Popover>"
        }
    },
    "classname": [
        {
            "label": "textRequired",
            "description": "文本必填项"
        },
        {
            "label": "fixAntTabletHeadThStyle",
            "description": "修改Tabal > thead 边距/背景色"
        }
    ]
}
常用 / 公用 组件配置 .angilecoderc
通过配置 JSON 中的 component,来达到快捷输入。以上述配置 JSON component 示例如下:
Ac-Popover 片段 演示光标 配合 prettier 会有很好的效果
Button 片段 演示属性
常用 / 公用 className 配置 .angilecoderc
常用的 className 类名记不得?可通过参数配置,配合 AngileCode 输入 (".") 调用配置, 使我们拥有找公用 class 的能力
以上述配置 JSON classname 示例如下:
以上就是目前 AngileCode 全部内容 希望能帮助到你!