小程序云开发学习笔记(二)

目录

JavaScript入门

操作数组

分隔符join方法

数组push方法

 移除最后一项pop方法

操作对象

给已有对象添加属性和值

删除对象的某个属性

常量

字符串的操作

Math对象

Date对象

全局对象wx

方法、属性很多,要多查MDN来找现成的处理方法。

点击事件

页面滚动

页面路由

响应的数据绑定

函数与调用函数

函数的定义和结构

对象的方法(函数)

匿名函数

箭头函数

JavaScript函数的写法

生命周期

链接携带数据

通过URL带参数实现页面数据传递

 自定义属性dataset数据集

小程序和页面的生命周期

onLaunch与onShow

用户登录与信息获取

step1:通过button来获取用户信息

step2:将用户信息写进app.js的globalData

that与this

图片、缓存与文件

获取手机相册或拍照的图片

空值的处理

操作图片

 获取图片信息:wx.getImageInfo()

预览图片:wx.previewImage()

 保存图片到相册:wx.saveImageToPhotosAlbum()

压缩图片:wx.compressImage()[kəm'pres]

上传文件

选择地理位置

模块化与格式化

模块化与引入模块

map

数据缓存Storage

网络API

数据API

渲染网络数据到页面

域名校验与白名单

res对象和res.data对象

 HTML标签解析rich-text

 解构赋值

调用API的AppID的存放 

模板字符串

encodeURI与decodeURI 

md5加密算法


JavaScript入门

  1. 控制台Console除了可以显示小程序的错误信息外,还可以用于输入和调试代码。
  2. JavaScript中单引号和双引号都表示字符串。如果字符串中存在双引号,建议最外层用单引号;如果字符串中存在单引号,建议最外层用双引号。并且如果语句是换行的,后面的分号;也可以不写
  3. JavaScript可以使用let语句声明变量,变量的值可以是任何数据类型
  4. 如果函数没有提供返回值,控制台会返回 undefined。
  5. 数组的__proto__里显示的是方法(函数)prototype['proʊtə.taɪp] 原型
  6. 命名规范:JavaScript的项目名、函数名、变量等都应该遵循简洁、语义化的原则。函数名推荐使用驼峰法来命名(camelCase),比如scrollToTop、pageScrollTo,也就是由小写字母开始后续每个单词首字母都大写,长得跟骆驼的驼峰似的。

操作数组

分隔符join方法

join方法将数组元素拼接为字符串,以分隔符分割,默认是逗号,分割。

数组push方法

push()方法向数组的末尾添加一个或更多元素,并返回新数组的长度

 移除最后一项pop方法

pop() 从数组末尾移除最后一项,并返回移除的项的值:

技术文档:MDN数组Array

操作对象

给已有对象添加属性和值

直接输入对象名.新增属性名=值即可

删除对象的某个属性

比如我们想删除movie的img属性,可以通过delete 方法来删除

常量

有些数据我们希望是固定的(写死,不会经常改变),这个时候可以使用const声明创建一个值的只读引用。

比如开发小程序的时候,我们会确定小程序的色系、颜色等,使用const声明,以后直接调用这个常量,这样就不用记那么多复杂的参数,以后想全网改样式,直接改const的内容即可。比如:

1

2

3

4

5

const defaultStyle = {

  color: '#7A7E83',

  selectedColor: '#3cc51f',

  backgroundColor: '#ffffff',

}

字符串的操作

1

2

3

4

5

6

7

8

9

10

11

12

let lesson="云开发技术训练营";

let enname="CloudBase Camp"

console.log(lesson.length);  //返回字符串的长度

console.log(lesson[4]);  //返回在指定位置的字符

console.log(lesson.charAt(4));   //返回在指定位置的字符

console.log(lesson.substring(3,6));  //从索引3开始到6(不包括6)

console.log(lesson.substring(4));  //从索引4开始到结束

console.log(enname.toLowerCase()); //把一个字符串全部变为小写:

console.log(enname.toUpperCase());  //把一个字符串全部变为大写:

console.log(enname.indexOf('oud')); //搜索指定字符串出现的位置:

console.log(enname.concat(lesson)); //连接两个字符串,也可以用+号

console.log(lesson.slice(4)); //提取字符串的某个部分,并以新的字符串返回被提取的部分

Math对象

Math是一个内置对象, 它具有数学常数和函数的属性和方法,但它不是一个函数对象。

Date对象

Date 对象用于处理日期和时间。时间有年、月、日、星期、小时、分钟、秒、毫秒以及时区的概念,因此Date对象属性和方法也显得比较多。

全局对象wx

wx是小程序的全局对象,用于承载小程序能力相关 API。小程序开发框架提供丰富的微信原生 API,可以方便的调起微信提供的能力,如获取用户信息,了解网络状态等。

方法、属性很多,要多查MDN来找现成的处理方法。

点击事件

事件是视图层到逻辑层的通信方式,当我们点击tap触摸touch长按longpress小程序绑定了事件的组件时,就会触发事件,执行逻辑层中对应的事件处理函数

ps:小程序所有组件都支持绑定点击事件(所有组件都有属性bind* / catch*

页面滚动

wx.pageScrollTo(),将页面滚动到目标位置,支持选择器(选中某一组件)和滚动距离两种方式定位

页面路由

页面路由是一个非常重要的概念,打开新页面、页面返回、Tab页面切换、页面重定向等都是也能路由的不同方式。

页面路由API Navigator open-type值 含义
 redirectTo redirect 关闭当前页面(无法返回),跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
navigateTo navigate 保留当前页面(有返回按钮),跳转到应用内的某个页面。但是不能跳到 tabbar 页面。
 navigateBack navigateBack 关闭当前页面,返回上一页面或多级页面。
 switchTab switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
reLaunch reLaunch 关闭所有页面,打开到应用内的某个页面

响应的数据绑定

只要对逻辑层data里的数据进行修改,视图层也会做相应的更新,我们称之为响应的数据绑定,而这是通过Page的setData()方法来实现的。

this.setData和 this.data(在事件处理函数中使用data中的变量)都用到了一个关键字 this。 this和中文里的“这个的”有类似的指代作用,在方法中, this 指代该方法所属的对象,比如这里的是Page对象, this.data就是指Page函数对象里的data对象。

函数与调用函数

函数的定义和结构

1

2

3

function 函数名(参数 1, 参数 2, 参数 3) {

    代码块内要执行的语句

}

ps:JavaScript允许传入任意个参数而不影响调用,因此传入的参数可以比定义的参数多,但是不能少。也就是说实参的数量可以多于形参但是不能少于形参。

比如,我们使用开发者工具在data.js的Page()函数前,添加如下代码:

1

2

3

4

function greet() {

    console.log("你好,欢迎来到云开发训练营");

};

greet(); //调用greet()函数

对象的方法(函数)

在小程序里我们会经常将一个匿名函数赋值给对象的一个属性,而这个属性我们可以称之为对象的方法。

匿名函数

函数声明function在语法上是一个语句,但函数也可以由函数表达式创建,这样的函数没有函数名称(匿名)。

使用开发者工具在data.js的Page()函数前,输入以下代码:

1

2

3

4

let square = function(number) {

  return number * number

};

console.log(square(4))//使用console.log()输出变量square

执行后,可以在控制台看到输出的结果为16。上面这个function函数没有函数名,相当于是把函数的返回值赋值给了变量square。

箭头函数

为什么叫箭头函数(Arrow Function),因为它定义一个函数用的就是一个箭头=>,我们来看两个例子,在data.js的Page()函数前输入以下代码:

1

2

3

4

5

6

const multiply = (x, y) => {

  return x * y;

}

const sum= (x, y) => x + y;//连{}和return语句都可以省掉

console.log(multiply(20, 4));

console.log(sum(20, 4));

在控制台我们可以看到箭头函数打印的结果。箭头函数相当于匿名函数,它没有函数名,而且也简化了函数定义。箭头函数可以只包含一个表达式,甚至连{ … }和return都可以省略掉。

JavaScript函数的写法

以下这两种写法都是可以执行的:

1

2

scrollToPosition() {

},

1

2

yellowTap:function(){

},

生命周期

链接携带数据

URL链接的特殊字符

  • / 分隔目录和子目录
  • ? 分隔实际的URL和参数
  • & URL中指定的参数间的分隔符
  • = URL中指定的参数的值
  • # 同一个页面的位置标识符,类似于页面的书签;

通过URL带参数实现页面数据传递

使用开发者工具,新建一个lifecyle的页面,以及在home页面新建一个二级页面detail(也就是在pages配置项新建一个pages/home/detail/detail,以及注意将lifecycle设置为首页)然后在lifecyle.wxml里输入以下代码,这里的url也通过?、&、=添加了很多数据:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值