OUC软件开发实验4

实验4:高校新闻网

本实验来自于周文洁老师的《微信小程序开发实战》第十五章。在学习了小程序的基础知识和各类API以后,尝试独立动手创建一个小程序前端综合设计实例。我们将从零开始详解如何模仿网易新闻实现一个基于模拟数据的简易高校新闻小程序。

一、实验目标

1、综合所学知识创建完整的前端新闻小程序项目;能够在开发过程中熟练掌握真机预览、调试等操作。

二、实验步骤

项目创建

创建一个空白文件夹

页面配置

相比于前两个实验,此实验的页面多了两个,所以需要额外创建创建其他文件。在app.json文件pages属性中继续追加detail和my目录,添加图片文件和创建公共js文件。

之后是很常规的删除和修改文件。

视图设计

导航栏和tabBar设计

在app.json中对Window属性进行重新配置来自定义导航栏效果,同时追加tarBar的相关属性代码

首页设计

首页主要包括两部分内容,即幻灯片滚动和新闻列表。使用如下组件:

幻灯片:组件

新闻列表:容器,内部使用数组循环

个人中心页设计

个人中心页主要包含两个板块,即登录面板和“我的收藏”。登录面板用于显示用户的微信头像和昵称,“我的收藏”用于显示收藏在本地的新闻列表。

新闻页设计

新闻页包括新闻标题、新闻图片、新闻正文和新闻日期。

由于暂时没做点击跳转的逻辑设计,所以可以先在开发者工具中增添编译模式,追加对于detail页面的直接浏览效果。

计划使用组件进行整体布局

逻辑实现

公共逻辑

数据原本应该使用由网站群管理平台提供的新闻接口,由于隐私安全等一系列问题,采用了模拟数据进行代替。

在公用文件common.js中添加自定义函数getNewsList和getNewsDEtai,分别用于获取新闻列表信息和指导ID的新闻正文内容。

//获取新闻列表
function getNewsList() {
  let list = [];
  for (var i = 0; i < news.length; i++) {
    let obj = {};
    obj.id = news[i].id;
    obj.poster = news[i].poster;
    obj.add_date = news[i].add_date;
    obj.title = news[i].title;
    list.push(obj);
  }
  return list; //返回新闻列表
}

//获取新闻内容
function getNewsDetail(newsID) {
  let msg = {
    code: '404', //没有对应的新闻
    news: {}
  };
  for (var i = 0; i < news.length; i++) {
    if (newsID == news[i].id) { //匹配新闻id编号
      msg.code = '200'; //成功
      msg.news = news[i]; //更新当前新闻内容
      break;
    }
  }
  return msg; //返回查找结果
}

最后还需要在common.js中使用module.exports语句暴露函数出口

// 对外暴露接口
module.exports = {
  getNewsList: getNewsList,
  getNewsDetail: getNewsDetail
}
首页逻辑

首页主要有两个功能需要实现,一是展示新闻列表,二是点击新闻标题可以跳转对应的内容页面进行浏览。

新闻列表使用了{{newsList}},因此需要在页面JS文件的onLoad函数中获取新闻列表,并更新到data属性的newsList参数中。

同时要使点击新闻标题即可实现跳转,需要为新闻列表项目添加点击事件,为 组件添加了自定义触摸事件函数goToDetail,并使用data-id属性携带新闻ID编号。

新闻页逻辑

新闻页主要有两个功能需要实现,一是显示对应新闻,二是可以添加/取消新闻收藏。

在首页逻辑中已经实现了页面跳转并携带了新闻ID编号,现在需要在新闻业接收ID编号,并查询对应的新闻内容。

修改detail.wxml代码,追加两个组件作为添加/取消收藏新闻的按钮,并使用wx:if和wx:else属性使其每次只存在一个。

个人中心页面

个人中心页主要有三个功能需要实现,一是获取微信用户信息,二是获取收藏列表,三是浏览收藏的新闻。

修改my.wxml代码,追加组件作为登录按钮,并且使用wx:if和wx:else属性让未登录时只显示按钮,登录后只显示头像和昵称。

按照教程得到下图所示,原因是原先获取头像和昵称的方法过期,要使用和实验1中的方法一样才可行。

点击浏览已经收藏的新闻和首页的点击跳转新闻内容功能类似。

后续也为其增加了退出功能。

      goLogout() {
        wx.showModal({
            title: '提示',
            content: '您确定要退出登录吗',
            success: (res) => {
                if (res.confirm) { //这里是点击了确定以后
                    console.log('用户点击确定')
                    wx.setStorageSync('islogin', false)
                    this.setData({
                        src: '',
                        nickName: '',
                        isLogin: false
                    })
                } else { //这里是点击了取消以后
                    console.log('用户点击取消')
                }
            }
        })
    },
清除临时数据

最后需要清除或注释掉一开始为了测试样式录入的临时数据,以免影响整体逻辑效果。

三、程序运行结果

列出程序的最终运行结果及截图。

四、问题总结与体会

1.问题:文档中有个地方错误,goToDetail函数添加位置不对

原本应该是添加到index.js中,却误写为添加到detail.js

2.问题:文档中的cancelfavorites函数拼写错误,误写为cancalfavorites

3.无法获取用户头像,在于文档中的方法已经过期,在实验1中就出现类似的问题

4.问题:头像和昵称的获取有很大的延迟

检查代码之后也没问题,估计是网络问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OUC数据库复习CSDN是指在中国软件开发者社区CSDN上,通过学习和复习中国海洋大学(OUC数据库相关的知识。 中国海洋大学数据库课程是计算机相关专业的重要课程之一,强调学生对数据库的理论知识和实践技能的掌握。学生在学习数据库课程期间,可以通过CSDN平台上的相关资源进行复习。 CSDN是中国最大的技术社区之一,拥有大量的技术博客、论坛和教程资源。在CSDN上,有很多关于数据库的博文和教程,涵盖了数据库的基本概念、SQL语言、存储过程、触发器等方面的知识。这些博文和教程不仅可以帮助学生复习数据库的各个方面,还能够深入了解数据库的应用和开发技巧。 另外,CSDN上还有一些数据库相关的实例教程和项目案例,可以帮助学生将理论知识转化为实际应用。这些教程和案例提供了数据库在不同领域的应用实例,如电子商务、社交网络、医疗健康等,能够帮助学生更好地理解数据库的实际应用场景。 通过在CSDN上复习OUC数据库课程,学生可以获得更广泛的数据库知识,并与其他开发者交流和分享经验。另外,CSDN还提供了一些数据库技术的最新动态和行业趋势,帮助学生了解数据库领域的最新发展。 综上所述,OUC数据库复习CSDN是一种便捷高效的学习方式,学生通过CSDN平台可以找到大量的数据库相关资源,帮助他们巩固和提升数据库知识和技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值