由于公司需要开发多端小程序,使用原生开发,不仅增加了大量工作,还要维护多套代码(相同逻辑,重复开发),本着减少前期开发,降低后期优化迭代成本,通过市场调查对比后,最终打算在uniapp与taro中选择一种技术开发小程序。
框架 | 技术栈 | 小程序 | H5 | App | 支持平台 | Star |
uni-app | React/Vue | 微信/支付宝... | 支持 | Android/IOS | 14 | 36.9k+ |
taro | Vue | 微信/支付宝... | 支持 | ReactNative | 12+ | 31.4k+ |
总结:uni-app 开发简单,小项目效率高,入门容易。Taro3上手难度相对较高,需要拥有良好的编程基础,支付宝小程序有些东西需要自己兼容适配(其它端没用过)。
使用Vue3/Vite创建项目基础模版,命令如下:
npx degit dcloudio/uni-preset-vue#vite-ts uniapp-applet
使用官方ui组件库,由官方同步维护,减少自己填坑
优点:高性能、全端、风格扩展、与uniCloud协作、与uni统计自动集成实现免打点、uni-ui符合全套DCloud组件规范
pnpm add @dcloudio/uni-ui
在pages.json文件中配置easycom组件自动引入规则
{ "easycom": { "autoscan": true, "custom": { "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" } }}
Vue 的状态存储库,它允许您跨组件、页面共享状态。了解更多查看pinia官方文档。
import { createPinia } from 'pinia';const store = createPinia();export default store;
import { defineStore } from 'pinia';export const useCounterStore = defineStore('counter', { state: () => { return { count: 0 }; }, actions: { increment() { this.count++; }, },});
import { createSSRApp } from "vue";import store from '@/stores';import App from "./App.vue";export function createApp() { const app = createSSRApp(App); // 注册store app.use(store); return { app, };}
counter:{{ counter.count }}
阿里图标库:搭建自己的图标库,小程序使用base64转换后的图标格式。
使用
animate css动画库
本地背景图片推荐以~@开头的绝对路径,背景图片建议小于40k,小于40k不支持本地背景平台编译自动转化为base64格式。
.test2 { background-image: url('~@/static/logo.png');}
easycom:只要组件安装在项目的 components 目录下,并符合 components/组件名称/组件名称.vue 目录结构。就可以不用引用、注册,直接在页面中使用。
优秀的vite插件推荐:
更多配置查看vite官方文档
- defineEmits
为了在声明 emits 选项时获得完整的类型推断支持
点我
- defineExpose
使用
父组件获取子组件属性
总结
本次基础模版分别引入:
- uni-ui 官方ui库
- pinia 状态管理工具
- iconfont 图标库
- animate css动画库
- vite 优秀插件
关注我
需要免费兼职,每天五分钟,实现最美现金流;有感兴趣的,请联系我~
发表评论
留言与评论(共有 0 条评论) “”