美文网首页程序员计算机学习
微信小程序开发——学习笔记(二)

微信小程序开发——学习笔记(二)

作者: JCLightZZ | 来源:发表于2020-11-03 20:51 被阅读0次

    微信小程序基本概念——事件

    不同终端的操作方法

    PC端操作:键盘、鼠标

    移动端操作:手指

    事件类型介绍

    事件类型 解释
    touchstart 手指触发屏幕时发生事件
    touchmove 手指在屏幕滑动
    touchend 手指离开屏幕
    tap 手指触发屏幕立即离开触发事件

    微信小程序——事件绑定元素

    事件绑定语法:

    <view bind事件名="函数"></view>,标签中的绑定元素有很多,例如绑定点击事件"bindtap",其他绑定元素还有很多,详见微信开发文档。

    代码示例:

    <!--这里将标签view绑定点击事件,事件名为handle,当点击该标签时,事件生效-->
    <view bindtap="handle"></view>
    

    微信小程序基本概念——生命周期(组件wxml)

    定义:组件生命周期是指一个组件从创建开始到使用到最后被销毁的过程。

    js文件下的基本事件介绍

    事件名 解释 可触发次数
    onLoad 组件创建成功并且加载完成 触发一次
    onReady 组件渲当成功 触发一次
    onShow 组件显示完成 触发多次
    onHide 组件隐藏完成 触发多次
    onUnload 组件销毁 触发一次(谨慎使用)

    注意:

    • 当onLoad事件触发发送请求获取数据时(获取其它组件传递数据 ),可使用options.······获取其他组件的数据。

    • 隐藏组件通过切换后台实现

    • 销毁组件通过跳转组件实现

    小技巧:

    如何通过js获取data中数据,或者修改data中的数据?

    如:data:{ msg:"hello"}

    获取data中数据:this.data.msg

    修改data中数据:this.setData({msg:"js"})

    跳转事件

    例如:在小程序界面上的任意组件上加入跳转事件,点击该组件即可事件跳转界面操作

    用法:在小程序的组件上添加点击事件,在js界面上的该事件函数下加入如下代码,即可实现跳转

     wx.redirectTo({//跳转界面函数
          url: '/pages/exam/exam',//目标页面的路径或url
        })
    

    跳转界面函数传递参数

    利用url的字段拼接即可实现参数传递,代码如下:

    wx.redirectTo({
          url: '/pages/exam/exam?id=13&age=11',//向目标界面传递两个参数id和age,使用?拼接参数
        })
    

    若在目标界面需要使用传递过去的参数,在目标界面的js中的data中先声明参数名,之后在页面加载函数onLoad中使用this.setDate({参数名:options.参数名})将传递过来的参数保存,也可使用console.log(options)将传递过来的数据打印在控制台中,若要显示在页面中,直接调用data中保存的数据即可。

    微信小程序云开发

    基本介绍

    云开发涵盖内容:云函数、云数据库、云存储

    传统小程序与云开发小程序的基本开发工作

    graph LR
    传统小程序开发方案
    A[前端]-->B[后端服务器]
    B-->DBA数据库管理员-->C[劣势]-->人员成本高
    B-->系统管理员-->C-->人员复杂不便沟通
    B-->负载均衡-->C
    B-->网络管理员等-->C
    

    传统小程序对中小型企业而言,开发成本较高

    graph LR
    小程序云开发开发方案
    A[前端]-->B[后端云开发]-->云数据库
    B-->云存储
    B-->云函数
    优势-->适合中小型项目开发
    

    小程序开发云服务器

    开通步骤:

    • 小程序开发工具中点击"云开发"按钮
    • 填写环境名称,点击"确定"

    注意:环境名称不能有中文不能以空格字母开头

    云数据库介绍

    小程序中的云数据库为文档型数据库非关系型数据库

    云数据库的创建方法

    • 第一步:开通云开发服务器服务
    • 第二步:在云开发控制台中创建集合
    • 第三步:为集合添加记录

    这里创建数据库及后续的操作皆是可视化界面操作,非常简单

    云数据库与关系型数据库对比

    关系型数据库 云数据库mongodb
    库 database 库 database (环境默认一个)
    表 table 集合 collection
    行 row 记录 record
    列 column 字段 field

    关系型数据库:适合方式企业内部系统的复杂关系

    mongodb:适合互联网项目(频繁查询/更新)、移动app

    操作云数据库方式

    • 操作方式一:云开发控制台(创建添加修改)

    • 操作方式二:小程序中(创建添加修改)与当前操作用户相关

    • 操作方式三:云函数权限最高(利用云函数操作数据库)

    数据库的添加数据操作

    在JS中对数据库进行操作的步骤:

    • 创建数据库对象(获取默认数据库对象实例)

      在js页面顶部添加const db = wx.cloud.database();代码,引入数据库对象实例

    • 向指定集合中添加一条记录

      创建代码示例如下:

      db.collection("集合名称")//指定所要操作的数据库
      .add({//数据库的添加操作(相当于插入Insert)
          data:{//将所添加的数据与属性名对应
              属性名:值,
              属性名:值...
          }
      }).then(res=>{  //函数执行成功的回调函数
          console.log(res);
      }).catch(err=>{  //函数执行失败的回调函数
          console.log(err);
      })
      

      注意

      • 上述代码应在创建好的事件函数中
      • 数据库中自动创建的openid是微信系统标识用户身份的唯一编号(open_id:当前登录用户的id)

    常见错误:database collection not exists

    ​ 解释:数据库中的集合不存在(集合没有创建成功/集合名称拼写错误)

    数据库的更新数据操作

    代码如下:

    db.collection("集合名称")
    .doc("当前记录id")   //在控制台查看需要操作的数据的id值并将其填写在括号中
    .update({
      data:{//将需要修改的值与字段对应
          age:23
      }
    })
    .then(res=>{//执行成功的回调函数
    })
    .catch(err=>{
       //执行失败的回调函数
    })
    
    数据库的查询数据操作

    代码如下:

    db.collection("集合名称")
    .get().then(res=>{}).catch(err=>{})
    

    不加限定的查询直接使用.get()函数,会将数据库中的全部记录查询出来

    如下代码为添加限定的查询操作:

    db.collection("集合名称")
    .where({//加入限定,只查询姓名是bench的记录
    name:"bench"
    })
    .get()
    .then(res=>{})
    .catch(err=>{})
    
    数据库的删除数据操作

    注意:小程序端只能一次删除一条记录

    代码如下:

    db.collection("集合名称")
    .doc("当前记录_id")   //在控制台查看需要操作的数据的id值并将其填写在括号中
    .remove()
    .then(res=>{console.log()})
    .catch(err=>{})
    

    云存储简单介绍

    云存储所能进行的操作:可将本地的图片、文件上传到云存储中,(上传图片/下载文件/文件管理)

    云函数简单介绍

    云函数的定义:简洁的node.js服务器函数

    云存储与云函数这里不再详细介绍,详见学习笔记三

    相关文章

      网友评论

        本文标题:微信小程序开发——学习笔记(二)

        本文链接:https://www.haomeiwen.com/subject/xubivktx.html