小程序云开发是什么?怎么用!

时间:2019-11-09 19:46:25   收藏:0   阅读:96

在此只做云开发简单使用的总结,深入使用,请参考官方文档

创建小程序和代码结构

目录结构

  1. project.config.json 对一个项目的整体配置
  2. app.json:项目的全局配置
    • pages项:对应的是一个数组,小程序有几个界面就配置几个
    • window项:对TopBar窗口的配置
    • tabBar项:底部通栏,一般需要自己添加,与window是同级,tabBar中list数组中的每一个对象代表tabBar中的每一个Tab

      WXML

  3. 与html类似,但是WXML中定义了一些自己的组件

WXSS

  1. 新定义像素单位rpx,规定不管屏幕大小,都为750rpx。使用rpx,能够实现手机端自适应布局
  2. 在WXSS中如何引用公共样式:@import ‘相对路径‘
  3. 第三方样式库推荐: WeUI ,iView ,Vant (后两者包含了pc端的组件)

JS

  1. 给data中的值赋值的时候,必须用this.setData({ count : this.data.count +1 })
  2. 微信小程序里的点击事件由bind , catch来绑定,bindtap(点击事件), bind允许事件冒泡,catch不允许事件冒泡

????????云小程序

云开发提供的五大基础能力

云数据库

  1. 文件上传流程图:技术分享图片
  2. 文件下载流程图:技术分享图片
  3.  1. 定义一个按钮,点击,让用户选择图片
     2. 在小程序点击事件中,完成选择图片,上传文件的API的使用
     upload:function(){
         //选择图片功能
         wx.chooseImage({
             count: 1,//上传一张图片,最多九张
             sizeType: ['original', 'compressed'], //图片选择原图还是压缩后的
             sourceType: ['album', 'camera'],//调用相册还是相机
             //选择成功后的回调函数
             success (res) {
                 // tempFilePath可以作为img标签的src属性显示图片
                 const tempFilePaths = res.tempFilePaths
                 //调用上传图片API
                 wx.cloud.uploadFile({
                     //为了防止图片名称一样,图片被覆盖,所以用时间戳来代替 
                     cloudPath:new Date().getTime()+'.png', //上传至云端的路径
                     filePath:tempFilePaths[0] //小程序临时文件路径
                     success:res>{
                         //返回文件的id
                         console.log(res.fileID)
                         //在此回调函数中,在讲上传图片的fileID传入到数据库中
                         db.collection('img').add({
                             data:{
                                 fileID:res.fileID
                             } 
                         }).then().catch(2 )
                     }
                     fail:console.error
                 })
             }
         })
     }
     3.将上传的图片展示出来
         通过云存储中的数据,去查到当前用户的所管理的图片
         因为不可能去看到别的用户上传的图片
    
         首先应该获取当前用户的信息(知道当前用户的openid是什么)
         wx.cloud.callFunction({
             name:'login',
         }).then(res=>{
             //根据login返回值中的openid来查询当前用户上传的图片
             db.collection('image').where({
                 _openid:res.result.openid
             }).get().then(res2=>{
                 console.log(res2)
                 //在data中定义一个images数组用来接收上传的图片路劲
                 this.setData({
                     //images图片对象数组,每个对象中的fileID就是图片的路径
                     //在小程序中只要用img中src="{{item.fileID}}"就可以将图片展示出来
                     images:res2.data
                 })
             })
         });
    
     4. 文件下载
         需要调用小程序云存储的API接口
         在下载按钮的点击事件中使用API
         wx.cloud.downloadFile({
             //通过事件对象,获取之前在button按钮中自定义的fileid数据
           fileID: event.target.dataset.fileid //文件id
         }).then(res => {
           //根据图片路径,将图片保存至相册
           wx.saveImageToPhotosAlbum({
             filePath:res.tempFilePatg
             success(res) { 
                 //成功后调用showTost,显示下载成功
                 wx.showToast({
                     title:'保存成功',
                 })
             }
           })
         }).catch(error => {
           // handle error
         })

小程序中的组件化开发

  1. 组件:在用户界面开发领域,组件是一种面向用户,独立的,可复用的交互元素的封装
  2. 组件化开发的意义:
    • 并不是代码的复用就用组件,即使某一个组件只要一次,只要他的功能比较独立,就可以使用组件来开发这个功能
    • 组件化是对资源的重组和优化,从而使项目资源管理更合理
    • 组件化有利于单元测试
    • 组件化对重构比较友好
  3. 设计原理:
    • 高内聚:组件设计上,能归为一个单元的代码封装到一起,尽量保证一个段的代码,实现的是一个需求
    • 低耦合:组件和组件之间,尽量减少关联,减少耦合性
    • 单一职责
    • 避免过多参数

原文:https://www.cnblogs.com/JCDXH/p/11827384.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!