• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

EA&UML日拱一卒-0基础学习微信小程序(10)-注册页面

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

注册过小程序之后,接下来注册页面。


代码说明


//index.js
//获取应用实例
var app = getApp()
Page({
    data: {
        motto: 'Hello World',
        userInfo: {}

    },
  

    //事件处理函数
    bindViewTap: function() {
        wx.navigateTo({
             url: '../logs/logs'
        })
    },
   

    onLoad: function () {
        console.log('onLoad')
        var that = this
        //调用应用实例的方法获取全局数据
        app.getUserInfo(function(userInfo){
            //更新数据
            that.setData({
                userInfo:userInfo
            })
        })
     }
})


Page函数


Page() 函数接受一个 object 参数,用来注册一个页面。它可以指定页面的初始数据、生命周期函数、事件处理函数等。


初始化数据


data属性指定的数据在页面第一次描画时使用。本例中定义了两个数据:motto和userinfo。


事件处理


bindViewTap函数是在index.wxml中绑定到用户信息表示容器上的。每当用户点击该容器,这个函数就会被调用。它的内容很简单,就是迁移到log画面。


命周期函数


本例中注册了onLoad函数,它会在页面加载时自动调用。


onLoad函数以函数对象为参数调用app.getUserInfo函数。而这个函数对象以userinfo为参数,功能是将userinfo设置到页面数据的userinfo对象上。


JavaScript知识


在调用app.getUserInfo传递了一个匿名的函数对象。这个对象至少有两点是C程序员不习惯的。


this和that


代 码中首先定义了一个that变量并将this赋值给它,然后使用that调用setData函数。这么做是因为javascript的this指针指向的 是调用函数的上下文。而这个函数在app.getUserInfo中调用,所以不能直接使用this,而只能使用事先准备好,指向本页面对象的that。


函数对象


在app.js中,作为参数传递给getUserInfo的函数对象cb是这样被调用的:


typeof cb == "function" && cb(this.globalData.userInfo)


我们
可 以用&&符号将表达式分为两部分,左边是取得cb的类型,确认是否是"function”,如果是则继续执行右半部分,以 this.globalData.userInfo为参数调用cb函数;如果cb的类型不是"function",因为表达式已经为假,所以不会调用cb 函数。


换一种写法,其实就是:


if(typeof cb == "function")

{

    cb(this.globalData.userInfo)

}


参考资料


关于this对象


JavaScript高级程序设计,第七章


Page


https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/page.html


写在文章的最后


既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。本公众号的成长需要您的支持!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序引入iconfont字体图标发布时间:2022-07-18
下一篇:
微信小程序之---- 数据处理发布时间:2022-07-18
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap