React 单文件组件的解决方案 Omil 和 Omi Snippets

Omil 是什么?

Omil是一个 webpack 的 loader,它允许你以一种名为单文件组件(SFCs)的格式撰写 Omi 组件:



Omil 还提供了很多酷炫的特性:

  • 允许为 Omi 组件的每个部分使用其它的 webpack loader,例如在

    以下代码就是经过 Omi Snippets 生成的 .js 后缀文件,可以用于在你没有 omil 模块下,主逻辑文件或者其他组件引入调用。

    import { WeElement, define, h } from "omi";
    class MyTest extends WeElement {
      render() {
        return h(
          "div",
          {
            class: "example"
          },
          this.data.msg
        );
      }
      install() {
        this.data = {
          msg: "Hello world!"
        };
      }
    }
    MyTest.css = `
    .example {
      color: red;
    }
    `;
    define("my-test", MyTest);

    配合 React 开发

    安装 React 脚手架和一些必要模块。

    npm install create-react-app
    # 初始化项目
    create-react-app my-project
    # 进入项目文件夹目录
    cd my-project
    # 安装项目依赖
    npm install
    # 安装 styled-components 这个务必得安装 用于处理 React 单文件组件局部样式
    npm install styled-components --save
    # 安装 omil 处理React单文件组件,把 .omi 或者 .eno 后缀文件处理为 JS
    npm install omil --save-dev

    在配置完 Omil 之后,我们可以在 VS Code 上同时安装好 Omi Snippets 扩展,这个插件可以方便的让你把 .omi 和 .eno 后缀文件在未经过 webpack 处理前转化为 .js 文件,让你可以直观了解到单文件组件经过 omil 转化后的 JS 文件内容,这相当于局部编译减轻 webpack 处理单文件时候的不必要消耗。

    编写第一个组件

    现在你可以使用单文件组件来编写 React 组件,默认生成类组件。

    • name属性值是组件名要满足 React 框架的组件名字定义规范,首字母必须大写字母;