主体内容

  • 代码构成

    • 数据: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
})
}

腾讯云开发微信小程序使用体验的更多相关文章

  1. 腾讯云&搭建微信小程序服务

    准备域名和证书 任务时间:20min ~ 40min 小程序后台服务需要通过 HTTPS 访问,在实验开始之前,我们要准备域名和 SSL 证书. 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可 ...

  2. 《腾讯游戏人生》微信小程序开发总结

    为打通游戏人生擂台赛与线下商家的O2O衔接,同时响应时下日臻火热的微信小程序,项目团队决定也开发一款针对性的微信小程序,以此方便商家在我们平台入驻并进行擂台赛事的创建和奖励的核销,进一步推广擂台赛的玩 ...

  3. 基于小程序云Serverless开发微信小程序

    本文主要以使用小程序云Serverless服务开发一个记事本微信小程序为例介绍如何使用小程序云Serverless开发微信小程序.记事本小程序的开发涉及到云函数调用.云数据库存储.图片存储等功能,较好 ...

  4. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

    在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...

  5. C#开发微信小程序

    个人见解,欢迎交流,不喜勿喷.   微信小程序相比于微信公众号的开发,区别在于微信小程序只请求第三方的数据,整个界面的交互(view)还是在微信小程序上实现,前后端完全分离,说白了,微信小程序开发与具 ...

  6. 快速开发微信小程序

    image.png 最近婷主在做微信小程序.自己的微信公众号也需要添加点料,乘着这次放假,把微信小程序研究了下.虽然没有做什么很强大的功能,不过好歹自己的公众号也有了微信小程序.够用即可. 1.需要先 ...

  7. 如何用TypeScript开发微信小程序

    微信小程序来了!这个号称干掉传统app的玩意儿虽然目前处于内测阶段,不过目前在应用号的官方文档里已经放出了没有内测号也能使用的模拟器了. 工具和文档可以参考官方文档:https://mp.weixin ...

  8. 开发微信小程序入门前

    开发微信小程序入门前 百牛信息技术bainiu.ltd整理发布于博客园 2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅.个大新闻.论坛都在讨论这个事情. 作为互联 ...

  9. 使用uView UI+UniApp开发微信小程序--微信授权绑定和一键登录系统

    在前面随笔<使用uView UI+UniApp开发微信小程序>和<使用uView UI+UniApp开发微信小程序--判断用户是否登录并跳转>介绍了微信小程序的常规登录处理和验 ...

随机推荐

  1. ThinkPHP5使用phpspreadsheet导入导出Excel

      引用类: use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use Php ...

  2. 004 JpaRepository,CrudRepository,PagingAndSortingRepository的区别

    很多程序都在使用,CrudRepository或者PagingAndSortingRepository,但是以前自己的程序使用的是JpaRepository,然后查了一下材料,记录一下. 1.类图 2 ...

  3. HTML中 :after和:before的作用及使用方法(转)

    1.  :before 和 :after 的主要作用是在元素内容前后加上指定内容,示例: HTML代码: <p>你好</p> CSS代码: p:before{ content: ...

  4. Mac 快速进入mysql命令行

    1.终端输入进入bin 目录 cd /usr/local/mysql/bin/ 2.mysql登录,输入密码即可 ./mysql -uroot -p 前提:mysql 服务已启动

  5. matlab学习笔记2--matlab的帮助

    一起来学matlab-matlab学习笔记2--matlab的帮助 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...

  6. Java连接MongoDB示例

    示例代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.util.ArrayList; import java.util. ...

  7. LODOP中table自动分页补线加border

    LODOP中可以用ADD_PRINT_TABLE.ADD_PRINT_HTM.ADD_PRINT_HTML.ADD_PRINT_TBURL等可以输出超文本的表格,超文有超过打印项高度或纸张高度自动分页 ...

  8. Ubuntu18使用netplan设置多网口绑定

    Ubuntu18使用netplan设置网络参考:https://www.cnblogs.com/minseo/p/11325384.html 修改配置文件 /etc/netplan/50-cloud- ...

  9. CentOS 7/6系统升级内核版本到5.2.2

    由于公司服务器新业务需要,需要将CentOS 7系统的内核(3.10.0-229)进行升级. 关于内核版本的定义:版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(lo ...

  10. 【Luogu P3919】可持久化数组

    数组是一种单点修改,单点查询的基础数据结构. 如果要对数组改进,使之可持久化,那么显然我们需要利用其它的数据结构来改进它. 对于单点修改和单点查询两种操作,很容易发现可持久化线段树也是支持这种操作的. ...