前端【小程序】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 更新数据
  • onShowonLoad 等生命周期
  • 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 })

 

posted @ 2024-04-18 10:53  为你编程  阅读(15)  评论(0编辑  收藏  举报