0.0.1 • Published 3 years ago

hlj-weapp-ui v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

hlj-weapp-ui 介绍

Weapp UI 是一款基于 Taro 框架开发的多端 UI 组件库,由婚礼纪海草云前端组开发维护。

Lerna

lerna是由 babel 团队出的一个多包管理的工具,以前的开发模式是一个项目一个仓库,管理起来比较困难, 尤其有系统内部包调用的时候,发布比较麻烦,所以更好的管理包管理的话, 所以推出了 lernaJS, 使用 monorepo 的概念。项目采用 lerna 管理,分为 hlj-weapp-ui(组件库),ui-demo(demo),ui-docs(文档)三个项目

Taro

使用 Taro,可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5)运行的代码。

Taro 是由 京东·凹凸实验室 倾力打造的多端开发解决方案。现如今市面上端的形态多种多样,Web、ReactNative、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

特性

  • 基于 Taro 开发 UI 组件
  • 一套组件可以在 微信小程序H5 适配运行
  • 提供友好的 API,可灵活的使用组件

使用前准备

在使用之前,推荐学习 TaroES2015,并正确配置 Node.js v14.xTaro v3.x 或以上版本

如何使用

1. 安装 Taro 脚手架工具

安装 Taro 开发工具 @tarojs/cli

使用 npm 或者 yarn 全局安装,或者直接使用 npx

:::demo

$ npm install -g @tarojs/cli
$ yarn global add @tarojs/cli

:::

2. 初始化项目

使用命令创建模板项目

:::demo

$ taro init myApp

:::

3. 安装 Weapp UI

:::demo

$ cd myApp
$ npm install hlj-weapp-ui

:::

P.S.因为要支持自定义主题功能,需要将样式从组件中抽离出来,在微信小程序中依赖 globalClass 功能,所以需要微信基础库版本在 v2.2.3 以上。

配置需要额外编译的源码模块

由于引用 node_modules 的模块,默认不会编译,所以需要额外给 H5 配置 esnextModules,在 taro 项目的 config/index.js 中新增如下配置项:

:::demo

h5: {
  esnextModules: ['hlj-weapp-ui']
}

:::

4. 使用 Weapp UI

引入所需组件

在代码中 import 需要的组件并按照文档说明使用

:::demo

// page.js
import { Button } from 'hlj-weapp-ui'

// 除了引入所需的组件,还需要手动引入组件样式
// app.js
import 'hlj-weapp-ui/dist/style/index.module.less' // 全局引入一次即可

:::

引入组件样式的三种方式

  • 全局引入(JS 中): 在入口文件中引入 hlj-weapp-ui 所有的样式 :::demo
import 'hlj-weapp-ui/dist/style/index.module.less' // 引入组件样式 - 方式一

:::

  • 全局引入(CSS 中):app.less 样式文件中 import 组件样式并按照文档说明使用 :::demo
@import 'hlj-weapp-ui/dist/style/index.module.less'; // 引入组件样式 - 方式二

:::

  • 按需引入: 在页面样式或全局样式中 import 需要的组件样式 :::demo
@import '~hlj-weapp-ui/dist/style/components/button.less'; // 引入所需的组件样式 - 方式三

:::

5. 按需加载

项目根目录添加并配置 babel.config.js

plugins: [
  [
    'import',
    {
      libraryName: 'hlj-weapp-ui',
      libraryDirectory: 'lib/components',
      camel2DashComponentName: false
    }
  ]
]

示例

/myApp/src/pages/index/index.tsx 文件添加以下代码

:::demo

import Taro, { Component, Config } from '@tarojs/taro'
import { View } from '@tarojs/components'
import { Button } from 'hlj-weapp-ui'

import './index.less'

export default class Index extends Component {
  config: Config = {
    navigationBarTitleText: '首页'
  }

  render() {
    return (
      <View className='index'>
        <Button type='primary'>按钮文案</Button>
      </View>
    )
  }
}

:::

编译并预览

进入项目目录开始开发,可以选择小程序预览模式,或者 h5 预览模式,若使用小程序预览模式,则需要自行下载并打开对应的小程序开发者工具,并选择预览项目根目录。

微信小程序编译预览模式

:::demo

# npm script
$ npm run dev:weapp
# 仅限全局安装
$ taro build --type weapp --watch
# npx用户也可以使用
$ npx taro build --type weapp --watch

:::

H5 编译预览模式

:::demo

# npm script
$ npm run dev:h5
# 仅限全局安装
$ taro build --type h5 --watch
# npx 用户也可以使用
$ npx taro build --type h5 --watch

:::

0.0.1

3 years ago

0.0.0

3 years ago