• 腾讯云开发微信小程序使用体验


    主体内容

    • 代码构成
      • 数据:JSON 配置文件
      • 结构:WXML 模版文件
      • 样式:WXSS 页面样式
      • 交互:JS 脚本逻辑文件
    • 云开发
      • 云数据库
      • 云函数
      • 云存储

    WXML

    是小程序框架设计的一套标签语言,结合小程序的基础组件,事件系统,可以构建出页面的结构,充当的就是类似HTML的角色

    • 常见组件

      • <view></view>类似于div
      • 胡子语法{{}}插值
      • 数据存储在base.js文件中
    • 列表渲染

      • wx:for {{index}} {{item}}
      • wx:key
    • 条件渲染

      • 使用wx:if="{{condition}}" 来判断是否需要渲染该代码块, 也可以用wx:elseif和wx:else来添加一个else块
      • wx:if vs hidden : 如果需要频繁切换的情景下,用hidden更好,如果在运行时条件不大可能改变则 wx:if 较好

    WXSS

    • WXSS(WeiXin Style Sheets)是一套用于小程序的样式语言,用于描述WXML的组件样式,也就是视觉上的效果。

    • 尺寸单位:rpx(responsive pixel) 可以根据屏幕宽度进行自适应, 适配不同宽度的屏幕 (规定屏幕宽度为750rpx)

    • 建议使用iphone6作为设计稿标准

    • 引入外部wxss: @import './test_0.wxss'

    • 推荐使用小程序第三方样式库

      • WeUI :一套同微信原生样式视觉体验一致的基础样式库
      • iView Weapp:一套高质量的微信小程序UI组件库 可构建后台管理系统
      • Vant Weapp:轻量、可靠的小程序UI组件库

    JS

    • 事件机制

      • 事件是对用户的交互操作行为的相应
      • bind VS catch : bind允许事件冒泡 catch不允许事件冒泡
      • 事件对象event

    微信小程序>云开发

    腾讯云 + 微信小程序

    • 云函数
    • 云数据库
    • 云存储

    小程序传统开发模式

    开发成本比较高 开发效率低 运维成本高

    • 客户端

    • 服务端

      • 后端代码
      • 数据库
    • 运维

    小程序云开发模式

    Serverless 开发者更关注业务逻辑

    • 客户端 + 云开发 减低成本

    • 不需要运维成本

    云函数

    • 获取appid
    • 获取openid
    • 生成分享图
    • 调用腾讯云SDK

    云数据库

    • 数据增删改查

    云存储

    • 管理文件
    • 上传文件
    • 下载文件
    • 分享文件

    基础环境

    个小程序帐号可免费创建两个环境建议:

    • 开发环境

    • 生产环境

    调试基础库版本应在 2.2.3 以上版本

    云数据库能力

    云开发提供了一个JSON数据库 提供了2GB免费存储空间

    数据类型

    • String: 字符串
    • Number: 数字
    • Object:对象
    • Array:数组
    • Bool: 布尔值
    • GeoPoint : 地理位置点
    • Date : 时间
    • Null

    操作云数据库

    • 小程序控制(读写数据库受权限控制限制)

    • 云函数控制(拥有所有读写数据库的权限)

    • 控制台控制(拥有所有读写数据库的权限)

    云数据库权限管理

    • 仅创建者可写, 所有人可读(文章类)

    • 仅创建者可读写

    • 仅管理端可写

    • 仅管理端可读写

    数据库初始化

    初始化

    const db = wx.cloud.database()
    

    切换环境

    const testDB = wx.cloud.database({
        env:'test'
    })
    

    选择云开发的编译路径

    通过云开发实现增删查改

    db.collection('name').doc('id')add() or ...
    

    云函数

    调用云函数的方法:

    	 wx.cloud.callFunction({
             name: '',
             data:{}
    	 }).then(res => {}).catch()
    

    云存储

    能力

    • wx.cloud.uploadFile 上传文件
    • wx.cloud.downloadFile 下载文件
    • wx.cloud.deleteFile 删除文件
    • wx.cloud.getTempFileURI 获取临时链接

    实例

    upload: function (){
        //选择图片api wx.chooseImage()
        wx.chooseImage({
            count: 1,
            sizeType:['original','compressed'],
            sourceType: ['album','camera'],
            success(res) {
                //tempFilePath 可以作为img标签的src属性显示图片(图片的临时路径)
                const tempFilePaths = res.tempFilePaths;
             //调用云存储api 上传文件 wx.cloud.uploadFile
                wx.cloud.uploadFile({
                    cloudPath: new Date().getTime()+'.png'//上传到云储存的路径
                    filePath:'tempFilePaths[0]'// 文件路径 因为tempFilePaths为数组
                    success:res => {
                        console.log(res.fileID)
                        db.collection('image').add({
                            data: {
                                fileID: res.fileID
                            }
                        }).then(res => {
                            console.log(res);
                        }).ctach( err => {
                            console.error(err);
                        })
                	},
            		fail:console.error
        		})
       		}
     	})    
    }
    

    拉取云存储到页面

    getFile(){
        wx.cloud.callFunction({
            name:'login',
        }).then(res => {
            db.collectin('image').where({
                _openid:res.result.openid
            }).get().then(res2 => {
                console.log(res);
                this.setData({
                //将拉取结果传给data中的images
                    images: res2.data
                })
            })
        })
    }
    

    文件下载

    cloud.wxml:

    <block wx:for="{{images}}">
    	<image src="{{item.fileID}}"></image>
    	<button data-fileid="{{item.fileID}} 
    	bind:tap="downloadFile>文件下载</button>
    </block>
    

    cloud.js:

    downloadFile(event){
        wx.cloud.downloadFile({
            fileID:event.target.dataset.fileid,//所需下载文件名
            success: res => {
                //返回临时文件路径
                console.log(res.tempFilePath)
                //把当前文件保存到手机相册
                wx.saveImageToPhotosAlbum({
                    filePath: res.tempFilePath,
                    success(res => {
                       //自动消失的提示框
                        wx.showToast({
                            title:'保存成功'
                        })
                    })
                })
            },
            fail: console.error
        })
    }
    

    大道至简 知易行难
  • 相关阅读:
    必须转载 PHP & memcached 太精彩了,看一遍就能入门
    SYSID 来指定当前system
    How to increase the JES2 spool size
    JOBPARM SYSAFF的用处
    使用多Volume来创建一个dataset
    如何解决db2nodes.cfg line number “1”, Reason code “10”
    epdf macro to remove comments
    如何停止重复的job
    mysql数值类型
    (九)solr实现autocomplete功能
  • 原文地址:https://www.cnblogs.com/axinmir/p/10854698.html
Copyright © 2020-2023  润新知