前端【小程序】07-小程序基础篇【框架接口】【获取APP实例】【获取页面栈页面实例】
获取昵称和头像
-
用户昵称
input
组件的type
属性设置为nickname
- 监听
input
组件的blur
事件(在开发者工具中需要失去焦点两次) - 事件回调中通过事件对象
ev.detail
获取用户昵称
-
用户头像
button
组件的open-type
属性设置为chooseAvatar
- 监听
button
组件的chooseavatar
事件(没有大写字母) - 事件回调中通过事件对象
ev.detail.avatarUrl
1 <view class="profile"> 2 <view class="nickname"> 3 <label for="">昵称:</label> 4 <input type="nickname" /> 5 </view> 6 <view class="avatar"> 7 <label for="">头像:</label> 8 <button> 9 <image src="" mode="aspectFill"/> 10 </button> 11 </view> 12 </view>
获取App实例
文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/getApp.html
通过getApp()方法,拿到app.js中定义的App实例
数据也可以不写在globalData中
在页面中通过getApp()拿到App实例,修改其中的数据
1 // pages/framework/index.js 2 Page({ 3 setToken () { 4 // 获取到app实例 5 const app = getApp() 6 // 修改app实例中globalData中定义的token的值 7 app.globalData.token = 'abcdefg' 8 } 9 })
获取页面栈(页面实例 )
文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/getCurrentPages.html
页面栈本质上是一个数组,它记录着当前打开的全部页面历史,页面栈中的每个单元即为一个页面实例(调用 Page 函数时会注册页面实例)。
全局调用 getCurrentPages
函数可以获取当前的页面栈,通过页面栈可以看到所有的页面实例,借助于页面栈可以获取到页面中的一些有用信息:
data
页面的初始数据setData
更新数据onShow
、onLoad
等生命周期route
页面的路径
在控制台通过getCurrentPages函数获取页面栈(在tabBar页面获取的时候,数组中只会有一项,当前tabBar页,因为跳转tabBar的时候,会关闭掉其他页面)
在页面中通过getCurrentPages()拿到当前页面实例
1 // pages/framework/index.js 2 Page({ 9 10 getPage() { 11 const pages = getCurrentPages() 12 // 拿到的页面栈中,最后一项就是当前页面实例 13 const currentPage = pages[pages.length -1] 14 console.log(currentPage) 15 } 16 })