uni-app项目开发学习总结

时间:2024-12-18 07:15:12

UniApp是一个基于开发的跨平台应用框架,可以用于开发同时运行在多个平台(如iOS、Android、H5等)的应用程序。

首先,你需要安装UniApp的开发环境。你可以在UniApp官网上找到安装步骤和相关文档。安装完成后,可以通过以下步骤来创建一个简单的UniApp博客应用:

1. 创建UniApp项目:打开命令行工具,进入你想要创建项目的目录,运行以下命令来创建一个新的UniApp项目:
```
vue create -p dcloudio/uni-preset-vue my-blog
```
按照提示选择创建项目的配置,建议选择默认配置。

2. 创建页面:使用命令行工具进入刚才创建的项目目录,然后运行以下命令来创建一个博客列表页面和一个博客详情页面:
```
uni-app create -t page pages/blogList
uni-app create -t page pages/blogDetail
```
这样会在项目目录下生成对应的页面文件。

3. 编写页面代码:打开刚才创建的`pages/`和`pages/`文件,在这些文件中编写博客列表和博客详情的页面代码,可以使用的语法和UniApp的组件。

4. 配置路由:在项目目录下找到`/src/router/`文件,添加博客列表和博客详情的路由配置,例如:
```javascript
import BlogList from '@/pages/'
import BlogDetail from '@/pages/'

const routes = [
  {
    path: '/blogList',
    name: 'blogList',
    component: BlogList
  },
  {
    path: '/blogDetail/:id',
    name: 'blogDetail',
    component: BlogDetail
  }
]
```

5. 运行应用:在命令行工具中运行以下命令来启动开发服务器,然后可以在浏览器中预览应用:
```
npm run dev:mp-weixin
```
这样会启动一个微信小程序的开发服务器,你可以在微信开发者工具中预览应用。你也可以使用其他命令来构建并预览在不同平台的应用,具体命令可以查看UniApp的文档。

当然,我可以为你详细介绍如何使用UniApp开发一个完整的博客应用。下面是一个步骤指南:

1. 环境设置:
   - 安装Node.js:确保你的计算机中安装了最新版的。你可以在官方网站()上下载并安装。
   - 安装HBuilderX:HBuilderX是UniApp的官方开发工具,支持Windows、MacOS和Linux系统。你可以在UniApp官网()上下载并安装HBuilderX。
   - 创建UniApp项目:打开HBuilderX,选择新建项目 -> 选择模板 -> 选择UniApp,并填写项目相关信息后创建项目。

2. 页面布局:
   - 建立页面结构:在项目目录的`pages`文件夹下,创建博客列表页()和博客详情页()的文件。
   - 设计页面布局:使用Vue的语法和UniApp提供的组件系统,设计博客列表页和博客详情页的布局。例如,可以使用`<uni-list>`和`<uni-card>`组件来展示博客列表,使用`<uni-rich-text>`组件来展示博客详情。

3. 数据管理:
   - 创建数据源:在项目目录下,创建一个`data`文件夹,并在该文件夹下创建一个名为``的文件。在``文件中,定义一个博客数据数组,包含多个博客对象,每个对象代表一篇博客,包括标题、作者、内容等字段。
   - 导入数据源:在`<script>`标签中,导入``文件,并将博客数据数组赋值给一个名为`blogs`的变量。

4. 博客列表页:
   - 显示列表:在``文件中,使用v-for指令遍历`blogs`数组,显示博客列表。可以使用`<uni-list>`和`<uni-list-item>`组件来展示每篇博客。
   - 路由跳转:为每个博客列表项添加点击事件,通过方法跳转到博客详情页,并传递博客的ID参数。

5. 博客详情页:
   - 获取参数:在``文件中,通过方法获取路由参数中的博客ID,并保存到一个变量中。
   - 显示详情:根据博客ID,从`blogs`数组中找到对应的博客对象,显示博客的详细信息。可以使用`<uni-card>`和`<uni-rich-text>`组件来展示博客的标题和内容。

6. 发布分享:
   - 导航栏添加按钮:在页面的导航栏上添加一个发布按钮,通过方法跳转到博客发布页。
   - 发布页面设计:创建一个名为``的页面文件,设计博客发布页面的布局,并在`<script>`标签中定义相应的数据和方法。
   - 发布功能实现:在``文件中,实现博客发布功能,将发布的博客数据添加到`blogs`数组中,并使用方法返回到博客列表页。

7. 数据持久化:
   - 使用方法:在博客发布功能中,使用方法将`blogs`数组存储到本地缓存中,以实现数据的持久化。

8. 样式美化:
   - 根据设计要求,编辑各个页面的样式,包括字体、颜色、布局等,使应用更加美观。

当开发UniApp博客应用时,另外一些功能和技术可以进一步考虑。以下是一些主题:

1. 用户登录与身份验证: 

  1. "pages": [ //pages数组中第一项表示应用启动页,参考:https:///collocation/pages
  2. {
  3. "path": "pages/index/index",
  4. "style": {
  5. "navigationBarTitleText": "babybus"
  6. }
  7. }, {
  8. "path": "pages/category/category",
  9. "style": {
  10. "navigationBarTitleText": "分类",
  11. "enablePullDownRefresh": false
  12. }
  13. }, {
  14. "path": "pages/cart/cart",
  15. "style": {
  16. "navigationBarTitleText": "购物车",
  17. "enablePullDownRefresh": false
  18. }
  19. }, {
  20. "path": "pages/user/user",
  21. "style": {
  22. "navigationBarTitleText": "我的",
  23. "enablePullDownRefresh": false
  24. }
  25. }


   - 创建用户登录页面:设计一个登录页面,用户可以输入用户名和密码进行登录。
   - 用户认证与授权:使用后端技术(如JWT)实现用户身份验证和授权功能,确保只有经过登录的用户才能发布博客、评论等操作。
   - 用户注册与密码找回:提供用户注册和密码找回的功能,通过发送电子邮件或手机验证码进行身份验证。

2. 博客搜索与过滤:
   - 添加搜索栏:在博客列表页中添加一个搜索栏,用户可以根据关键词搜索博客。
   - 博客过滤与排序:提供博客按照日期、浏览量等进行排序和过滤的选项,使用户更容易找到感兴趣的博客。

3. 博客分类与标签:
   - 创建博客分类和标签:为博客添加分类和标签功能,方便用户对博客进行分类和检索。
   - 分类和标签筛选:在博客列表页中,提供分类和标签选择器,用户可以根据自己的兴趣选择相应的分类或标签进行筛选。

4. 图片和多媒体上传:
   - 添加图片和多媒体上传功能:在博客发布页面中,提供图片和多媒体文件的上传功能,使用户能够添加图片、视频等丰富的多媒体内容。
   - 图片预览和缩略图:在博客详情页面中,提供图片预览和缩略图功能,使用户能够查看和浏览博客中的图片内容。

  1. @font-face {
  2. font-family: "iconfont"; /* Project id 3995406 */
  3. src:
  4. url('~@/static/iconfont/') ;
  5. }
  6. .iconfont {
  7. font-family: "iconfont" !important;
  8. font-size: 16px;
  9. font-style: normal;
  10. -webkit-font-smoothing: antialiased;
  11. -moz-osx-font-smoothing: grayscale;
  12. }
  13. .icon-shouye:before {
  14. content: "\e65d";
  15. }
  16. .icon-denglu1:before {
  17. content: "\e612";
  18. }
  19. .icon-gouwuchekong:before {
  20. content: "\e600";
  21. }
  22. .icon-dianpu:before {
  23. content: "\e895";
  24. }
  25. .icon-fenxiang:before {
  26. content: "\e624";
  27. }
  28. .icon-kefu:before {
  29. content: "\e625";
  30. }
  31. .icon-shoucang:before {
  32. content: "\eca7";
  33. }
  34. .icon-sousuo:before {
  35. content: "\e86e";

5. 评论和社交分享:
   - 添加评论功能:为每篇博客添加评论区域,用户可以发表评论、回复他人的评论等。
   - 社交分享功能:在每篇博客下方,提供社交分享按钮,方便用户将博客分享到其他社交媒体平台。

6. 个人中心和用户设置:
   - 创建个人中心页面:提供一个个人中心页面,用户可以查看自己的博客、评论等信息。
   - 用户设置:在个人中心页面中,允许用户进行个人资料修改、密码重置等操作,提供良好的用户体验。

7. 数据备份和恢复:
   - 实现数据备份功能:定期将博客、用户数据等重要数据备份到云存储或其他安全介质上,以防止数据丢失。
   - 数据恢复功能:提供数据恢复功能,使管理员能够在发生数据丢失或错误时,方便地将数据恢复到之前的状态。

这些是一些额外的功能和技术可以增加到UniApp博客应用中。根据你的需求和项目规模,你可以选择实现其中一些功能,或者进一步扩展和改进这个应用。祝你开发顺利!

当开发购物车功能时,你可以遵循以下步骤:

1. 创建购物车页面:
   - 在UniApp中创建一个购物车页面,可以命名为``。
   - 设计购物车页面的布局,包括商品列表、总价格、结算按钮等。

  1. <template>
  2. <view v-if='>0'>
  3. <klg-address :address='address'></klg-address>
  4. <view class="cart-title">
  5. <text class="iconfont icon-shouye">购物车</text>
  6. </view>
  7. <view class="">
  8. <view v-for='(item,index) in cart' :key='index'>
  9. <zjl-goods :goods='item' :showCheck='true' :showNum='true'
  10. :allowLongTap='true' @changeNum='changeNum' @changeChecked="changeChecked">
  11. </zjl-goods>
  12. </view>
  13. </view>
  14. <!-- 购物车统计 -->
  15. <zjl-settle :cartData="cart" showAllCheck='true' buttonText='结算' @handleAllChecked="handleAllChecked"></zjl-settle>
  16. </view>
  17. <view v-else>
  18. <view ><img src="../../static/cart_empty.png" alt=""></view>
  19. <view><text class="text">购物车为空</text></view>
  20. </view>
  21. </template>
  22. <script>
  23. export default {
  24. data() {
  25. return {
  26. cart: [],
  27. address:{},
  28. }
  29. },
  30. onShow() {
  31. = ('cart') || [];
  32. this.address = ('address') || [];
  33. ();
  34. },
  35. methods: {
  36. changeNum(e){
  37. let index = (v=>v.goods_id == e.goods_id);
  38. if( === 0){
  39. (index,1);
  40. }else{
  41. [index].cartNum = ;
  42. }
  43. ();
  44. ('cart',);
  45. },
  46. changeChecked(e){
  47. let index = (v=>v.goods_id == e.goods_id);
  48. [index].checked=;
  49. ('cart',);
  50. ();
  51. },
  52. handleAllChecked(e){
  53. (e);
  54. (v => =e);
  55. ('cart',);
  56. }
  57. }
  58. }
  59. </script>
  60. <style lang="scss">
  61. .cart-title {
  62. padding: 15rpx;
  63. font-size: 30rpx;
  64. border-bottom: var(--separateLine);
  65. }
  66. img{
  67. display: flex;
  68. justify-content: center;
  69. align-items: center;
  70. height: 300rpx;
  71. width: 300rpx;
  72. }
  73. .text{
  74. font-size:32rpx;
  75. }
  76. </style>

2. 数据存储与管理:
   - 创建一个本地存储(Local Storage)或全局变量(Vuex)来存储购物车中的商品信息。
   - 定义商品对象的结构,包括商品ID、名称、价格、数量等属性。

3. 添加商品到购物车:
   - 在商品列表页或详情页中,为每个商品添加一个“添加到购物车”的按钮。
   - 在点击按钮时,将选中的商品信息添加到购物车的数据存储中。

4. 显示购物车商品列表:
   - 在购物车页面中,根据存储的购物车数据,使用v-for指令遍历商品列表,展示每个商品的名称、价格、数量等信息。
   - 使用计算属性或过滤器计算购物车中商品的总价,并显示在页面上。

5. 修改购物车商品数量:
   - 为购物车中的每个商品项添加增加和减少数量的按钮。
   - 在点击按钮时,通过修改购物车存储中商品的数量属性来更新页面上的商品数量。

6. 从购物车中移除商品:
   - 为购物车中的每个商品项添加一个删除按钮。
   - 在点击按钮时,从购物车存储中移除对应的商品信息,并更新页面展示。

7. 结算功能:
   - 在购物车页面中,添加一个结算按钮。
   - 在点击按钮时,根据购物车存储中的商品信息,进行相关的结算逻辑(如生成订单、支付等)。

8. 数据持久化与登录:
   - 在用户登录状态下,将购物车的数据保存到你的后端服务器中,以便用户在不同设备或会话下保持购物车数据的一致性。
   - 当用户退出登录后,清空本地购物车数据。

  1. template>
  2. <view class="" v-if="token">
  3. <view class="container">
  4. <!-- 头像昵称区域 -->
  5. <view class="top-box">
  6. <image src="../../static/" class="avatar" mode="widthFix"></image>
  7. <view class="nickName">Au</view>
  8. </view>
  9. <!-- 面板的列表区域 -->
  10. <view class="panel-list">
  11. <!-- 第一个面板 -->
  12. <view class="panel">
  13. <!-- panel 的主体区域 -->
  14. <view class="panel-body">
  15. <!-- panel 的 item 项 -->
  16. <view class="panel-item">
  17. <text>0</text>
  18. <text>收藏的店铺</text>
  19. </view>
  20. <view class="panel-item">
  21. <text>1</text>
  22. <text>收藏的商品</text>
  23. </view>
  24. <view class="panel-item">
  25. <text>1</text>
  26. <text>关注的商品</text>
  27. </view>
  28. <view class="panel-item">
  29. <text>0</text>
  30. <text>足迹</text>
  31. </view>
  32. </view>
  33. </view>
  34. <!-- 第二个面板 -->
  35. <view class="panel">
  36. <!-- 面板的标题 -->
  37. <view class="panel-title">我的订单</view>
  38. <!-- 面板的主体 -->
  39. <view class="panel-body">
  40. <!-- 面板主体中的 item 项 -->
  41. <view class="panel-item">
  42. <text class="iconfont">&#xe897;</text>
  43. <text>全部订单</text>
  44. </view>
  45. <view class="panel-item">
  46. <text class="iconfont">&#xe60c;</text>
  47. <text>待付款</text>
  48. </view>
  49. <view class="panel-item">
  50. <text class="iconfont">&#xe673;</text>
  51. <text>待收货</text>
  52. </view>
  53. <view class="panel-item">
  54. <text class="iconfont">&#xe68e;</text>
  55. <text>退款/退货</text>
  56. </view>
  57. </view>
  58. </view>
  59. <!-- 第三个面板 -->
  60. <view class="panel">
  61. <view class="panel-list-item">
  62. <text>收货地址管理</text>
  63. <uni-icons type="arrowright" size="15"></uni-icons>
  64. </view>
  65. </view>
  66. <!-- 第四个面板 -->
  67. <view class="panel">
  68. <view class="panel-list-item">
  69. <text>联系客服</text>
  70. <uni-icons type="arrowright" size="15"></uni-icons>
  71. </view>
  72. <view class="panel-list-item">
  73. <text>意见反馈</text>
  74. <uni-icons type="arrowright" size="15"></uni-icons>
  75. </view>
  76. <view class="panel-list-item">
  77. <text>关于我们</text>
  78. <uni-icons type="arrowright" size="15"></uni-icons>
  79. </view>
  80. </view>
  81. <!-- 第五个面板 -->
  82. <view class="panel">
  83. <view class="panel-list-item" @click="logout">
  84. <text>退出登录</text>
  85. <uni-icons type="arrowright" size="15"></uni-icons>
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. </view>
  91. </template>

以上是购物车功能的基本开发步骤。你可以根据自己的需求和业务逻辑进行扩展和改进,例如添加优惠券、配送方式等功能。同时,记得进行测试和优化,确保购物车功能的稳定性和良好的用户体验。祝你开发顺利!