云开发
第三方库WeUI
weUI 是一套同微信原生视觉体验一致的基础样式库
iView Weapp
一套高质量的微信小程序 UI 组件库
Vant Weapp
轻量、可靠的小程序 UI 组件库
云开发小程序传统开发模式
客户端 —–> 服务端(后端代码、数据库)——> 运维(DB 维护、文件存储、内容加速、网络防护、容器服务、负载均衡、安全加固等…)
小程序云开发模式
客户端 —–> 云开发(云函数、云数据库、云存储)
传统开发 VS 云开发
开发效率低 Serverless(无服务)
运维成本高 开发者更关注业务逻辑
无服务(Serverless)开发是未来的发展趋势
云开发三大基础能力云函数(相当于传统开发中的后台接口)
获取 appid、获取 openid、生成分享图、调用腾讯云 SDK …
云数据库数据的增、删、改、查 …
云存储管理文件、上传文件、下载文件、分享文件 …
每个小程序账号可免费创建两个环境,建议:开发环境、生成环境
文件说明
文件说明project.config.json 项目配置 部分代码说明
setting:{
urlCheck 是否检测安全的域名
es6 是否把 es6 转 es5
postcss 是否把 css 样式自动补全
minified 是否压缩
}
app.json 全局配置
全局配置 API
wxml 相关介绍
wxmlAPI
123456789101112131415161718192021<view>{{motto}}</view>循环渲染<view wx:for="{{list}}" wx:key="{{index}}"> {{index}} {{item}} </view>改变for循环item和index的名称<block wx:for="{{list} ...
目录说明
微信公众平台https://mp.weixin.qq.com/
注册时可选择类型:订阅号、服务号、小程序、企业微信
每个邮箱仅能注册一个小程序。
个人类型小程序:无法使用微信支付、无法使用卡包功能
小程序文档 API小程序开发文档
微信开放社区微信开发社区
目录说明默认目录
pages———————–页面相关
index —————– 首页文件夹
index.js ————首页 js
index.json———首页配置
index.wxml——-首页 html
index.wxss——–首页 css
utils————————工具相关
app.js ———————-项目总 js
app.json——————-全局配置( 页面路由以及头部、底部导航的配置等)
app.wxss —————–项目总样式 css
project.config.json —-项目配置
代码构成
.json :配置文件,以 json 格式存储配置
项目中有三种配置:项目配置(project.config.json)、全局配置(app.json)、页面配置(index.json)
.wxml ...
一周中的第几天
一周中的第几天
给一个日期,设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}。
输入:day = 31, month = 8, year = 2019
输出:”Saturday”
1234567891011121314151617let dayOfTheWeek = function(day, month, year) { const week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; const monthDays = [31, 28, 31, 3 ...
最小绝对差
最小绝对差
给你个整数数组 arr,其中每个元素都 不相同。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。每对元素对 [a,b] 如下:a , b 均为数组 arr 中的元素a < bb - a 等于 arr 中任意两个元素的最小绝对差
输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]
1234567891011121314151617let minimumAbsDifference = function(arr) { let sortArr = arr.sort((a, b) => { return a - b }) //升序排列 let res = [] let cz = sortArr[1] - sortArr[0] //第一对相邻元素的差值 // 遍历相邻两个元素,计算差值 for (let i = 0; i < sortArr.length - 1; i++) { if (cz > sortArr[i + 1] - sortArr[i]) ...
1 比特与 2 比特字符
1 比特与 2 比特字符
有两种特殊字符:
第一种字符可以用一比特 0 表示
第二种字符可以用两比特(10 或 _11_)表示一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符,则返回 true 。
根据题意,第一种字符一定以 0 开头,第二种字符一定以 1 开头。
我们可以对 bits 数组从左到右遍历。当遍历到 bits[i] 时,如果 bits[i]=0 ,说明遇到了第一种字符,将 i 的值增加 1;如果 bits[i]=1,说明遇到了第二种字符,可以跳过 bits[i+1] (注意题目保证 bits 一定以 0 结尾,所以 bits[i]一定不是末尾比特,因此 bits[i+1] 必然存在),将 i 的值增加 2。
上述流程也说明 bits 的编码方式是唯一确定的,因此若遍历到 i=n−1,那么说明最后一个字符一定是第一种字符.
12345678let isOneBitCharacter = function(bits) { let i = 0, n = bits.length; while (i < n - 1 ...
枚举
TypeScript 的类型校验是给程序员看的,在编译后不会存在TS代码。
枚举12345678910111213141516171819202122232425262728293031// Enum枚举类型 (个人理解枚举:约定一组可选的常量。 使用常量名表示某个值的含义,增强可读性。)// js写法// const Status = {// MASSAGE: 0,// SPA: 1,// DABAOJIAN: 2// }// ts写法enum Status { MASSAGE, // 如果想从1开始,给MASSAGE = 1, 即可 SPA, DABAOJIAN} // 默认赋值 0 、1、2console.log(Status.MASSAGE, Status[0]) // 0, MASSAGE 可以通过下标反查function getStatus(status: any) { if (status === Status.MASSAGE) { return 'massage ...
函数的类型注解
函数的类型注解12345678910111213141516171819202122232425262728293031323334// 函数返回值的类型注解 fn(): number {}function getTotal2(one: number, two: number): number { return one + two}getTotal2(1,2)// 无返回值: voidfunction sayHello(): void { console.log("Hello")}// 永远执行不玩的函数function setTimer():never { throw new Error() console.log(123)}// 参数是对象时的注解 (也可以用接口)function add({ one, two }: {one: number, two: number}) { return one + two}c ...
对象的类型
对象的类型12345678910111213141516171819202122232425262728// 对象字面量的类型检查const xiaojiejie: { name: string, age: number} = { name: '小红', age: 18}// 标注:objectconst obj:object = {}// 使用接口interface Person{ name: string age: number}const xjj: Person = { name: 'xh', age: 18}// class类的类型检查class Parson { }const xiaobai: Parson = new Parson()// 函数和返回值的类型检查const fn: ()=> string = () => '123'
有序数组的平方
有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
123456789101112131415161718// 利用双指针法,比较数组头尾元素,大的插入,小的进行下一次比较,直到遍历结束。let sortedSquares = function(nums) { let start = 0; let end = nums.length - 1; let i = nums.length - 1; let res = [...nums]; for (; i >= 0; i--) { if (nums[start] * nums[start] >= nums[end] * nums[end]) { res[i] = n ...