2021 最新仿掘金微信小程序(02-云函数首页动态渲染)

762 阅读4分钟

2021 最新仿掘金微信小程序(02-云函数首页动态渲染)

本章节主要实现以下功能

  • 使用云函数搭建后台
  • 首页动态渲染
  • 首页数据分页加载
  • 封装文章内容渲染组件
  • 转发到微信好友
  • 转发到朋友圈

用到的技术

  • 结构部分

    • scroll-view 原生组件
    • picker 原生组件
    • jj-item 自定义组件
  • css部分

    • less
    • flex
  • 逻辑功能部分

使用云函数搭建后台

所谓云函数其实就是 后台接口函数,也是目前比较火的 serverless概念。小程序中的云函数可以让工程师跳过繁琐的后台搭建工作,如购买云服务器,搭建开发环境,设置安全,控制并发,并直接实现了微信小程序的授权工作。用它!

新建云函数

鼠标右键 新建云函数,填写函数的姓名(也是接口的名称)

image-20210325072428158

因为首页使用到了两个云函数,所以我们新建两个

  • category 获取首页栏目分类数据

    image-20210325072610976

  • recommend_all_feed 获取首页内容数据

    image-20210325072705232

云函数安装依赖

新建完云函数中,能看到 index.js, 我们这里就把它看成是一个普通的后台node文件即可

image-20210325072840593

其中 package.jsondependencies 字段内有看到 wx-server-sdk

{
  "dependencies": {
    "wx-server-sdk": "~2.3.3"
  }
}

这就表示 每一次新建完云函数后,都需要我们自己安装依赖,否则运行失败

这里输入 npm install 安装依赖,如果我们想要使用其他的npm 包,也可以直接安装和使用

云函数 category 功能

category 云函数的工作是用来获取首页上的栏目分类数据的

主要流程是

  • 使用axios发送异步请求,获取掘金首页上真实的html  ̄□ ̄||
  • 使用 cheerio 来解析 掘金返回的html结构,组装成数组
  • 需要注意的是 以上两个包都需要先执行 npm 安装

20210325 081925

其中,返回的数据格式如下

2021-03-25 081951

云函数 recommend_all_feed 功能

recommend_all_feed 的功能是获取首页内容数据

安装依赖

npm i  axios 

代码如下

// 云函数入口文件
const cloud = require('wx-server-sdk');
const axios =require("axios");
cloud.init();

// 云函数入口函数
exports.main = async (event, context) => {
  // 获取小程序中携带的参数
  const {id_type,sort_type,cursor,limit,cate_id,url}=event;
  // 获取掘金首页内容数据
  const result=await axios.post(url,{id_type,sort_type,cursor,limit,cate_id});

  return {
    data:result.data.data,
    cursor:result.data.cursor,
    has_more:result.data.has_more,
  }
}

其中返回的数据格式如下

2021-03-25 082020

主要的是 item_type,不同的item_type 对应着不同的内容(这就是为什么我写了好多的if-else)

比如

  • 正常文章

    image-20210325074923931

  • 小册

    image-20210325075111690

  • 广告

    image-20210325075052043

小程序端获取数据

小程序做为客户端,负责主动发起请求获取数据、实现数据页面渲染

初始化云开发环境

在小程序中想要使用云开发的功能,需要先执行云开发的初始化,建议在 小程序的入口文件 app.jsonLaunch 生命周期中来获取,它表示应用启动的时候触发(之前我的文章中有)

2021-03-25 082041

可以在 这里获取到 云开发的环境id

image-20210325075819693

调用云函数

完成初始化工作后,我们就可以在小程序的任意地方来调用云函数了

image-20210325080134960

将云函数中的数据设置到data中

我们只需要在获得数据后,将它设置到 data 中,即可实现在wxml里使用我们的数据

image-20210325080334356

标签结构

拥有了数据后,直接在 小程序的wxml中渲染即可

image-20210325080817824

以上用到的主要和web端不同的技术有

  • scroll-view
  • wx:for 指令等小程序基本语法
  • 自定义组件 jj-item

小程序中的转发功能

详细的讲解 还是在我之前的文章中有

我这里实现了两个转发功能

  • 转发到微信好友

  • 转发到朋友圈

    image-20210325081100557

以上功能实现不难,只需要在 index.js中 添加两个生命周期函数即可

image-20210325081210160

下拉刷新和上拉加载下一页

因为这个功能比较常见,配置方法也是在之前的文章中有过说明,因此,这里不再过多赘述。

好友微信号

添加大佬微信 和上千同伴一起提升技术交流生活

hsian_

最后

码字不容易 你的点击关注点赞留言就是我最好的驱动