乐趣区

轻量的移动端React组件库

移动端 React 组件库

重新设计了 Form 那块组件,让数据校验变得更简单。
欢迎提出更多优化建议,如有兴趣参与该项目,请邮件至:saytxk@gmail.com

(-> . ->) 没错,我就是来骗 Star 滴。

项目地址: https://github.com/rc-mobile/rcm-mobile

演示页面: https://rc-mobile.github.io/rcm-mobile/

使用说明

1. 创建一个项目(走模版创建,无需任何配置,尚未开源)

走模版创建的项目,无需下面配置操作,开箱即用。敬请期待 …

2. 依赖安装

npm i -S rcm-mobile  # 下载依赖 

3. 初始 HTML

解决不同机型的多倍屏问题,通过设置视网膜显示屏来达到统一的目的。

组件尺寸大小都是基于 rem 开发,可以灵活调整以适用想要适配的视网膜显示屏

  • 通用做法:一倍视网膜显示屏方案
<!DOCTYPE html>
<html lang="cn">
  <head>
    <meta charset="utf-8">
    <meta
      name="viewport"
      content="width=device-width,
      initial-scale=1, maximum-scale=1,
      minimum-scale=1, user-scalable=no"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
  </head>
  <body></body>
</html>
  • 自定义:多倍视网膜显示屏

    1. 第一步:确定视网膜显示屏倍数,如现在设成 2 倍
    2. 第二步:初始化 rem 的大小,html{font-size: 32px}。即浏览器默认的文字大小 (16px) * 视网膜显示屏倍数
    3. 第三步:恢复 body 下的文字大小,body{font-size: 16px}
<!DOCTYPE html>
<html lang="cn" style="font-size: 32px;">
  <head>
    <meta charset="utf-8">
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <script>
     (function () {var phoneScale = parseInt(window.screen.width) / 750
        document.write('\<meta name="viewport"content="width=750, minimum-scale='+ phoneScale +', maximum-scale='+ phoneScale +', user-scalable=no, viewport-fit=cover">')
      })()
    </script>
  </head>
  <body style="font-size: 16px;"></body>
</html>

4. 全量使用( 不推荐

组件使用实例:

import {Button} from 'rcm-mobile';
import 'rcm-mobile/dist/rcm-mobile.css';

ReactDOM.render(<Button>Start</Button>, document.body);

5. 按需加载( 推荐

  • 方式一:使用 babel-plugin-import(推荐)

    1. 配置 babel

      // .babelrc or babel-loader option
      {
        "plugins": [
          ["import", {
            "libraryName": "rcm-mobile",
            "libraryDirectory": "lib",
            "style": true
          }, "rcm-mobile"]
        ]
      }

然后只需从 rcm-mobile 引入模块即可,无需单独引入样式。

import {Button} from 'rcm-mobile';

ReactDOM.render(<Button>Start</Button>, document.body);
  • 方式二:手动引入需要的组件
import Button from 'rcm-mobile/lib/button';  // 加载 JS
import 'rcm-mobile/lib/button/style';  // 加载 CSS
退出移动版