主体内容

  • 代码构成

    • 数据: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. 深度学习面试题18:网中网结构(Network in Network)

    目录 举例 参考资料 网中网结构通过多个分支的运算(卷积或池化),将分支上的运算结果在深度上连接 举例 一个3*3*2的张量, 与3个1*1*2的卷积核分别same卷积,步长=1, 与2个2*2*2的 ...

  2. <深度学习优化策略-3> 深度学习网络加速器Weight Normalization_WN

    前面我们学习过深度学习中用于加速网络训练.提升网络泛化能力的两种策略:Batch Normalization(Batch Normalization)和Layer Normalization(LN). ...

  3. 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan

    一个工具的逻辑得足够完善.意义足够重大,才有资格发在NG上. A gene-based association method for mapping traits using reference tr ...

  4. BeanDefinitionParserDelegate与资源解析

    继续上一次的分析 XmlBeanDefinitionReader.java 中 1.registerBeanDefinitions方法 documentReader.registerBeanDefin ...

  5. AndoridSQLite数据库开发基础教程(6)

    AndoridSQLite数据库开发基础教程(6) 为数据库添加添加空表 如果开发者想要往数据库中添加表和列,操作步骤如下: (1)在打开的数据库中,单击左下方的“+”按钮,弹出Table Edito ...

  6. Vue非父子组件传值

    <template> <div id="app"> <v-home></v-home> <br> <hr> ...

  7. java8 数据集过滤removeIf和filter

    对象如下,需求:只要30岁以下的人 //求职者的实体类 public class Person { private String name;//姓名 private Integer age;//年龄 ...

  8. JSOUP 爬虫

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.mavne 依赖: <!--html 解析 : jsoup HTML parser library @ ...

  9. linux非root用户安装5.7.27版本mysql

    先下安装包,到mysql官网https://dev.mysql.com/downloads/mysql/选好安装包版本.操作系统类型(默认是最新版本,点击右边链接Looking for previou ...

  10. 深入学习c++--多线程编程(一)

    1. 简介 2. 线程使用 2.1 demo #include <iostream> #include <thread> #include <future> usi ...