uniapp +vue3 开发须要兼容小步伐、h5、安卓、ios, 选择哪些插件和ui库会更 ...

打印 上一主题 下一主题

主题 1782|帖子 1782|积分 5346

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下是基于 UniApp + Vue 3 开发,兼容小步伐、H5、安卓和 iOS 的完整框架搭建方案,包括推荐的 UI 库和插件,以及详细代码示例。
一、框架搭建

1. 环境准备

确保已安装 Node.js 和 npm/yarn。推荐使用最新稳定版本的 Node.js。
2. 创建项目

使用 HBuilderX 创建项目,大概通过命令行创建:
  1. npx create-uni-app my-app
  2. cd my-app
复制代码
3. 安装依赖

安装 Vue 3 和其他须要的依赖:
  1. npm install
复制代码
二、推荐的 UI 库和插件

1. UI 库

推荐使用 uView Plus,这是一个专为 UniApp 生态设计的 UI 框架,支持 Vue 3,适配 H5、小步伐、安卓和 iOS。
安装 uView Plus
  1. pnpm add uview-plus  # 或 npm install
  2. uview-plus
复制代码
配置项目
在 src/main.ts 中引入并挂载 uView:
  1. import { createSSRApp } from 'vue';
  2. import App from './App.vue';
  3. import uViewPlus from 'uview-plus';
  4. export function createApp() {
  5.   const app = createSSRApp(App);
  6.   app.use(uViewPlus);
  7.   return { app };
  8. }
复制代码
在 src/uni.scss 中引入全局样式:
  1. @import 'uview-plus/theme.scss';
复制代码
在 App.vue 中引入底子样式:
  1. <style lang="scss">
  2. @import "uview-plus/index.scss";
  3. </style>
复制代码
在 pages.json 中配置自动导入组件:
  1. {
  2.   "easycom": {
  3.     "autoscan": true,
  4.     "custom": {
  5.       "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue",
  6.       "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue"
  7.     }
  8.   }
  9. }
复制代码
2. 状态管理

推荐使用 Pinia,它是 Vue 3 的官方状态管理库。
安装 Pinia
  1. npm install
  2. pinia
复制代码
配置 Pinia
在 src/main.ts 中引入并挂载 Pinia:
  1. import { createPinia } from 'pinia';
  2. const pinia = createPinia();
  3. app.use(pinia);
复制代码
3. HTTP 请求

推荐使用 Axios,并结合 axios-miniprogram-adapter 适配小步伐。
安装 Axios
  1. npm install
  2. axios axios-miniprogram-adapter
复制代码
配置 Axios
在 src/utils/request.js 中配置 Axios:
  1. import axios from 'axios';
  2. import axiosMiniprogramAdapter from 'axios-miniprogram-adapter';
  3. axios.defaults.adapter = axiosMiniprogramAdapter;
  4. export default axios;
复制代码
4. 其他插件



  • mescroll-uni:用于实现下拉刷新和上拉加载。
    1. npm install
    2. mescroll-uni
    复制代码
  • uCharts:高性能跨平台图表库。
    1. npm install
    2. ucharts
    复制代码
三、项目结构

  1. my-app/
  2. ├── src/
  3. │   ├── main.ts
  4. │   ├── App.vue
  5. │   ├── uni.scss
  6. │   ├── utils/
  7. │   │   └── request.js
  8. │   ├── stores/
  9. │   │   └── useUserStore.ts
  10. │   ├── pages/
  11. │   │   └── index.vue
  12. │   └── components/
  13. │       └── CustomComponent.vue
  14. ├── pages.json
  15. ├── manifest.json
  16. └── package.json
复制代码
四、示例代码

1. 页面示例

src/pages/index.vue:
  1. <template>
  2.   <view>
  3.     <u-button type="primary" @click="fetchData">获取数据</u-button>
  4.     <view v-if="data">数据:{{ data }}</view>
  5.   </view>
  6. </template>
  7. <script lang="ts">
  8. import { defineComponent, ref } from 'vue';
  9. import axios from '@/utils/request';
  10. export default defineComponent({
  11.   setup() {
  12.     const data = ref(null);
  13.     const fetchData = async () => {
  14.       try {
  15.         const response = await axios.get('/api/data');
  16.         data.value = response.data;
  17.       } catch (error) {
  18.         console.error(error);
  19.       }
  20.     };
  21.     return {
  22.       data,
  23.       fetchData,
  24.     };
  25.   },
  26. });
  27. </script>
复制代码
2. Pinia Store 示例

src/stores/useUserStore.ts:
  1. import { defineStore } from 'pinia';
  2. export const useUserStore = defineStore('user', {
  3.   state: () => ({
  4.     name: '',
  5.     age: 0,
  6.   }),
  7.   actions: {
  8.     setName(name: string) {
  9.       this.name = name;
  10.     },
  11.     setAge(age: number) {
  12.       this.age = age;
  13.     },
  14.   },
  15. });
复制代码
3. Axios 请求示例

src/utils/request.js:
  1. import axios from 'axios';
  2. import axiosMiniprogramAdapter from 'axios-miniprogram-adapter';
  3. axios.defaults.adapter = axiosMiniprogramAdapter;
  4. export default axios;
复制代码
五、多端适配

1. 小步伐适配

在 manifest.json 中配置小步伐干系设置:
  1. {
  2.   "mp-weixin": {
  3.     "appid": "your-appid",
  4.     "pages": [
  5.       {
  6.         "path": "pages/index/index",
  7.         "style": {
  8.           "navigationBarTitleText": "首页"
  9.         }
  10.       }
  11.     ]
  12.   }
  13. }
复制代码
2. H5 适配

在 manifest.json 中配置 H5 干系设置:
  1. {
  2.   "h5": {
  3.     "devServer": {
  4.       "proxy": {
  5.         "/api": {
  6.           "target": "http://your-api-server.com",
  7.           "changeOrigin": true
  8.         }
  9.       }
  10.     }
  11.   }
  12. }
复制代码
六、运行与调试

1. 小步伐调试

  1. npm run dev:mp-weixin
复制代码
2. H5 调试

  1. npm run dev:h5
复制代码
3. App 调试

使用 HBuilderX 或其他工具打包为 App 进行调试。
七、总结

通过上述步骤,你可以搭建一个基于 UniApp + Vue 3 的完整开发框架,支持小步伐、H5、安卓和 iOS。推荐的 UI 库和插件包括 uView PlusPiniaAxios 等,能够满足多端开发的需求。
如果须要更详细的代码示例和配置,可以参考开源项目 uniapp-vue3-template 。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表