uni-app课程心得体会以及编程思路

 一.心得体会   

  1.uniapp具有跨平台的特性,可以使用同样的代码在多个平台(如H5、小程序、App)上进行开发,极大地提高了开发效率和代码复用率。这也意味着在开发时,可以快速地经过调试和测试,在不同平台上发布应用程序,加快开发和部署的速度。

   2.uniapp提供了丰富的组件库和插件,可以轻松地创建各种界面和交互元素,如图标、弹出框、下拉刷新等等,可以满足开发需求,加快开发进度,提高开发效率。而且,uniapp具有灵活的扩展性,可以自定义组件和插件,满足开发中的特殊需求。

3.uniapp提供了完善的文档和社区支持,可以很容易地获取使用说明、示例代码、常见问题解答等帮助信息,并且可以在开发过程中获取社区的支持和帮助。这些文档和社区资源,可以让开发者更好地理解和掌握uniapp的使用方法和技巧。

   uniapp的跨平台特性、丰富的组件库和插件、完善的文档和社区支持,都为开发提供了非常良好的开发环境和体验,是一个非常优秀的前端开发框架。

Uniapp 是一种基于 Vue.js 框架的跨平台开发框架,可以使用 Vue.js 的语法和组件编写跨 iOS、Android、H5 等多端应用程序。Uniapp 提供了许多原生应用程序框架和浏览器提供的 API、插件、组件等功能,方便开发者进行多端应用程序的开发。Uniapp 的特点有:

1. 组件、API 和功能丰富: Uniapp 提供了许多适用于多端开发的组件、API 和功能,开发者可以编写一套代码并同时适用于多个平台。

2. 兼容性好: Uniapp 提供了兼容多个平台的高效解决方案,无需考虑不同平台的兼容问题,大大提高了开发效率。

3. 开发效率高: Uniapp 提供了许多快速开发工具和插件,可以极大地提高开发速度和效率。

4. 支持原生应用程序: Uniapp 可以编译成原生应用程序,并且支持原生应用程序的调用和功能扩展。

总之,Uniapp 是一个非常适合跨平台开发的框架,开发者可以轻松地编写出同时适用于多个平台的应用程序,大大降低了开发成本和时间。

二.编程思路

以黑马优购商城为例

 黑马优购是一个电商平台,主要经营范围包括各种商品的销售和物流配送服务。它提供了一个在线购物平台,让用户可以在网上购买自己需要的商品。同时,黑马优购也提供安全、快速、可靠的配送服务,用户购买的商品可以通过黑马优购配送到家。

用到的编程开发工具:HBuilder X、微信开发者工具等。

1.项目接口文档:https://www.showdoc.com.cn/128719739414963/2516997897914014

2.帮助文档

uni-app官网:DCloud - HBuilder、HBuilderX、uni-app、uniapp、5+、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架

阿里巴巴字体图标官网:iconfont-阿里巴巴矢量图标库

菜鸟教程:菜鸟教程 - 学的不仅是技术,更是梦想!

阮一峰的flex教程:Flex 布局教程:语法篇 - 阮一峰的网络日志

Vue官网:https://cn.vuejs.org/v2/guide/

微信小程序官网:微信开放文档

3.项目搭建

 在HBuilder X 里面新建一个ui-app项目

#3.2目录结构

#3.3页面

#3.4字符图标

项目使用到以下字符图标

4.首页创建

在pages文件夹下创建index.vue文件(首页面)

#4.2业务逻辑

1.使用tabbar实现底部导航功能

2.使用自定义组件的方式实现 头部搜索框

3.加载 轮播图 数据

4.加载 导航 数据

5.加载 楼层 数据

#4.3关键技术

1.全局样式设置

2.自定义组件 实现 搜索框

3.uni内置 request API

4.swiper 组件

swiper组件标签存在默认的宽度与高度

100%*150px

图片存在默认宽度与高度

320px*240px

5.uni.request的封装

 

css样式代码:

<style lang="scss">
    page {
        padding-top: 90rpx;
    }

    .index-swiper {
        swiper {
            width: 750rpx;
            height: 340rpx;

            image {
                width: 100%;
            }
        }
    }

    .index-cate {
        width: 750rpx;
        display: flex;
        .iamge-box{
            flex: 1;
            padding: 20rpx;
        }
        image {
            width: 100%;
        }
    }
    
    .index-floor{
        width: 750rpx;
        .floor-title{
            image{
                width: 100%;
            }
        }
        
        .floor-list{
            padding: 15rpx;
            .image-box{
                width: 240rpx;
                height: calc(240rpx*386/232);
                float: left;
                
                //计算最后四个图片的高度
                &:nth-last-child(-n+4){
                    height: calc(240rpx*386/232/2);
                    border-left: 10rpx solid #ffffff;
                }
                
                //第2、3张图片的下边框
                &:nth-child(2),&:nth-child(3){
                    border-bottom: 10rpx solid #ffffff;
                }
                
                image{
                    width: 100%;
                    height: 100%;
                }
                
            }
        }
        
    }
</style>

效果图:

首页(index.vue)完整代码:

<template>
    <view class="index">
        <tcl-header></tcl-header>
        <!-- 轮播图     -->
        <view class="index-swiper">
            <swiper indicator-dots="true" autoplay="true" interval="3000" duration="1000">
                <swiper-item v-for="(item,index) in swiperList" :key="index">
                    <image :src="item.image_src" mode="widthFix"></image>
                </swiper-item>
            </swiper>
        </view>
        <!-- 导航 -->
        <view class="index-cate">
            <view class="iamge-box" v-for="(item,index) in navList" :key="index"  @click="gotfoor()">
                <image :src="item.image_src" mode="widthFix"></image>
            </view>
        </view>
        
        <!-- 楼层 -->
        <view class="index-floor">
            <view v-for="(item,index) in floorList" :key="index"class="floor-group" @tap='onclick(index)' >
                <view class="floor-title">
                    <image :src="item.floor_title.image_src" mode="widthFix" class="image-tor"></image>
                </view>
                <view class="floor-list">
                    <view v-for="(item2,index2) in item.product_list" :key="index2" class="image-box">
                        <image :src="item2.image_src" mode="widthFix" ></image>
                    </view>
                </view>
            </view>
        </view>
        
        
    </view>
</template>

<script>
    export default {
        data() {
            return {
                swiperList: [],
                navList: [],
                floorList:[],
            }
        },
        onLoad() {
            this.getSwiperList();//获取轮播图数据
            this.getNavList();//获取导航数据
            this.getFloorList();//获取楼层数据
        },
        methods: {
            onclick(index){
                let name=''
                if(index==0){
                    name="女装"
                }else if(index==1){
                    name="运动户外"
                }else{
                        name="皮具箱包"
                }
                uni.reLaunch({
                    url:'/pages/category/category?name='+name
                })
            },

            
            //异步请求
            //async 异步 await 等待
        async getSwiperList(){
            //await 只能在async标识的函数内使用 await 会阻止塞后继续代码运行
                const res=await this.$Https({
                    url:'/home/swiperdata'
                });
                console.log(res);
                this.swiperList=res.message;
            },
  
            //异步请求
            //async 异步 await 等待
            async getNavList(){
                const res=await this.$Https({
                    url:'/home/catitems'
                });
                console.log(res);
                this.navList=res.message;
            },
            
            //获取楼层数据
            async getFloorList(){
            const res=await this.$Https({
                url:'/home/floordata'
            });
            console.log(res);
            this.floorList=res.message;
            },
            gotfoor(num){
            uni.switchTab({
                url:'/pages/category/category'
            })
            },
            
        }
    }
</script>

 使用uni-app开发黑马优购项目,需要熟练掌握uni-app框架、MVVM架构和相关工具,同时需要有较好的编程和业务处理能力,才能开发出高质量的应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值