首页 > 其他分享 >HarmonyOS如何实现封装

HarmonyOS如何实现封装

时间:2022-12-21 19:22:07浏览次数:34  
标签:封装 name 如何 url image jpg HarmonyOS http stuNum

简化代码的一些措施

http.js

/**
 *  send http request util file
 */

import http from '@ohos.net.http';

const Base_Url = 'http://nja5ih.natappfree.cc'


export default{
    get(url, fn){
        // 每一个httpRequest对应一个http请求任务,不可复用
        let httpRequest = http.createHttp();
        let options = {
            method: http.RequestMethod.GET,
            // 开发者根据自身业务需要添加header字段
            header: {
                'Content-Type': 'application/json'
            }
        }
        // http://cmn8ut.natappfree.cc/api/login
        httpRequest.request(
            // ***填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定***
            Base_Url + url,
            options,
            (err, data) => {//err成功与否,data后台服务器返回的结果
            if (!err) {//成功
                //data.result >> 数据类型:String >> 为了后续的操作,需将data.result转成JSON对象
                fn(JSON.parse(data.result));
            } else {//失败
                console.info('error:' + JSON.stringify(err));
                // 当该请求使用完毕时,调用destroy方法主动销毁。
                httpRequest.destroy();//对象销毁
            }
        }
        );
    },
    post(url, parmas, fn){
        // 每一个httpRequest对应一个http请求任务,不可复用
        let httpRequest = http.createHttp();
        let options = {
            method: http.RequestMethod.POST,
            // 开发者根据自身业务需要添加header字段
            header: {
                'Content-Type': 'application/json'
            },
            extraData: parmas
        }
        // http://cmn8ut.natappfree.cc/api/login
        httpRequest.request(
            // ***填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定***
            Base_Url + url,
            options,
            (err, data) => {//err成功与否,data后台服务器返回的结果
                if (!err) {//成功
                    fn(JSON.parse(data.result));
                } else {//失败
                    console.info('error:' + JSON.stringify(err));
                    // 当该请求使用完毕时,调用destroy方法主动销毁。
                    httpRequest.destroy();//对象销毁
                }
            }
        );
    }
}

classes.js

import router from '@ohos.router'
import HttpUtil from '../../http/http.js'
export default {
    data: {
        swiperImages:[],
        quickStart: [],
        starClasses: [],
        hotCourses: [],
    },
    onInit() {//界面初始化时调用此方法
        //发送http请求至后台服务器拿到首页轮播图的网络地址集合,实现轮播图加载
        //swiperImages:['http://ip:port/images/swiper1.png','http://ip:port/images/swiper2.png']
        //http.get() => result => this.swiperImages = result;
        //
        this.swiperImages = ['swiper1.jpg','swiper2.jpg','swiper3.jpg','swiper4.jpg','swiper5.jpg'];
        //初始化快捷入口的数据
        this.quickStart = [
            {
                name:'课程', image: 'course-icon.png', url: 'pages/course/course'
            },
            {
                name:'班级', image: 'class-icon.png', url: 'pages/classes/classes'
            },
            {
                name:'培训', image: 'train-icon.png', url: 'pages/train/train'
            },
            {
                name:'测试', image: 'test-icon.png', url: 'pages/test/test'
            },
            {
                name:'群组', image: 'group-icon.png', url: 'pages/group/group'
            }
        ];
        //发送http请求至后台服务,经过业务逻辑处理后,拿到排名前四的班级的信息
        //http.get() => result => this.starClasses = result
        //starClasses: [{name, master, stuNum, image},...]

        HttpUtil.get('/api/getStarClasses', (result)=>{
            this.starClasses = result.data;
        })

        this.starClasses = [
            {
                name : '软件20-1班', master : 'xxx', stuNum : 35, image: 'class1.jpg'
            },
            {
                name : '软件20-3班', master : 'xxx', stuNum : 35, image: 'class2.jpg'
            },
            {
                name : '软件20-5班', master : 'xxx', stuNum : 35, image: 'class3.jpg'
            },
            {
                name : '软件20-7班', master : 'xxx', stuNum : 35, image: 'class4.jpg'
            },
        ];
        //发送http请求至后台服务,经过业务逻辑处理后,拿到排名前四的班级的信息
        //http.get() => result => this.starClasses = result
        //hotCourses: [{name, master, stuNum, image},...]
        this.hotCourses = [
            {
                name: 'Java从入门到放弃', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng1.jpg'
            },
            {
                name: 'Python从入门到放弃', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng2.jpg'
            },
            {
                name: 'C++从入门到放弃', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng3.jpg'
            },
            {
                name: 'C语言从入门到放弃', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng4.jpg'
            },
            {
                name: 'HarmonyOS北向应用开发', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng5.jpg'
            },
            {
                name: 'Spring微服务架构设计', teacher: '周卓', stuNum: 35, hour: 16, score: 3, image: 'kecheng6.jpg'
            },
        ]

    },
    forward(url){
        router.push({
            url: url
        });
    }
}




标签:封装,name,如何,url,image,jpg,HarmonyOS,http,stuNum
From: https://www.cnblogs.com/chuixulvcao/p/16996971.html

相关文章

  • 算法-如何理解递归,写好递归函数
    不是每个程序员天生对递归理解深刻,刚入大一时候,当别人写出第一个求最大公约数的递归函数时,对其多么的惊叹,竟然可以不用循环,竟然代码可以这么简洁,确实递归在大多数情况下实......
  • 如何利用JS加密工具来压缩体积
    JavaScript是一种常用的网页编程语言,它可以用来在网页中执行各种功能。有时候,我们可能会需要对JavaScript代码进行解密,以便了解其中的逻辑或者修改其中的内容。那么,JavaScri......
  • 监控画面花屏、马赛克、拖影问题如何快速解决
    监控画面花屏、马赛克、拖影、跳秒,可能不少朋友都有遇到过。如果不了解问题出现的原因、没有掌握正确的排查方法,就很难快速解决问题。下面小编就给大家介绍快速定位、解决花......
  • 如何将模块打包发布?
      终于用pyqt5制作出来的图书管理系统完成了,那么在打包模块时该怎么做呢?下面我主要以图书管理系统的模块为案例简述两种打包方式。一、第一种方式在打包前需要用到一......
  • 企业数据泄漏应如何预防?
    据《中国政企机构数据安全风险分析报告》显示,2022年1月——2022年10月,安全内参共收录全球政企机构重大数据安全报道180起,其中数据泄露相关安全事件高达93起,占51.7%。与近三......
  • 房地产企业如何走出数字化困境?
    自疫情以来,房企的数字化转型逐渐进入快车道,期间也涌现出不少问题与挑战。而面对这些问题与挑战,企业又该如何应对呢?希望本文能为面临这些困境的企业提供应对的思路。面临挑战......
  • TCP 协议如何提高传输效率
    本片主要讨论TCP协议在保证可靠传输的前提下,如何提高传输效率;提高性能滑动窗口快重传延迟应答捎带应答 滑动窗口如果我么每一次发送一个数据,都要给一个AC......
  • 如何用手机打印文件,提高打印效率?
    传统的打印需要打印机连接电脑,但是随着智能手机和互联网的发展,现在使用手机就可以完美代替电脑进行打印,并且即便是没有打印机,我们也可以借助手机进行在线云打印。不过如果......
  • .NET Core如何通过认证机制访问Kafka?
    大家好,我是Edison。最近有一个ASP.NETCore使用认证机制访问Kafka的需求,加之我们又使用了CAP这个开源项目使用的Kafka,于是网上寻找了一番发现对应资料太少,于是调查了一番,......
  • golang如何打印变量类型,golang list如何把元素转换为可用类型
    golang打印变量类型方法glist=list.New()fmt.Printf("%T",mylist)结果:*list.Listgolang把list中的any类型转化为目的类型zz:=new(XNSSS)glist.PushBack(zz)f......