【小程序框架力荐】一时间忘了自己在开发H5还是小程序~

525 阅读2分钟

背景

我们都知道小程序与 Vue2 类似,采用了选项式 API,而 behaviors 是复用代码的唯一方式,类似于 Vue2 的 mixins。

而 Vue3 已经发布很久了,了解过的同学都知道组合式 API 能够通过组合函数来实现更加简洁高效的逻辑复用。在选项式 API 中我们主要的逻辑复用机制是 mixins,而组合式 API 解决了 mixins 的所有缺陷。

那么我们能不能像写 Vue3 一样开发小程序呢?

介绍

今天给大家介绍的是 小程序框架 Rubic

Rubic 是一个轻量级的小程序运行时框架,它继承 Vue3 的设计思路,并提供了与 Vue 一致的编程模型。它专注于 javascript 逻辑部分,为小程序提供更好的逻辑复用以及更灵活的代码组织能力。

特性:

  • 响应性:基于 @vue/reactivity 的响应式能力。
  • 组合式:与 vue3 一致的 Composition API 来描述组件逻辑。
  • 类型化:灵活的 API 和完整的 TypeScript 类型。
  • 轻量级:仅 30KB 的体积,无编译依赖,现有小程序可轻松接入。

Rubic是运行时框架,不依赖编译过程,可以很方便的接入现有小程序

下面是一个最基本的组件示例:

import { definePage, ref, computed, onLoad } from 'rubic'

definePage({
  setup(query, ctx) {
    const count = ref(0)
    const double = computed(() => count.value * 2)

    const increment = () => {
      count.value++
    }
    
    onLoad(()=>{
        console.log('onLoad')
    })
    
    return {
      count,
      double,
      increment,
    }
  },
})
<view bindtap="increment">{{count}} x2:{{double}}</view>

状态管理

同样对于状态管理方面我们尽量保持 Vue3 的开发习惯,Rubic 复刻了 pinia API 将它移植到小程序端。


import { defineStore } from 'rubic'

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const useCounterStore = defineStore('main', {
  // other options...
})
import { definePage, defineStore } from 'rubic'
import { useCounterStore } from './stores/counter'

definePage({
  setup() {
    const store = useCounterStore()

    return {
      // 您可以返回整个 store 实例以在模板中使用它
      store,
    }
  },
})

链接

源码:github.com/JasKang/rub…

文档:rubic.jaskang.vip