13714245368

网站建设 APP开发 小程序

新闻

继上次谈到了视图层开发经验,本期,知晓程序(想要和大家分享大众点评点餐小程序开发中,逻辑层开发的经验。小程序提供了App方法来注册整个小程序。在方法里,我们可以传入一

您当前位置>主页 > 新闻 > 新闻中心 >

小程序开发经验逻辑层

发表时间:2020-06-01 22:06

文章来源:admin

浏览次数:

继上次谈到了视图层开发经验,本期,知晓程序(想要和大家分享大众点评点餐小程序开发中,逻辑层开发的经验。

小程序提供了App方法来注册整个小程序。在方法里,我们可以传入一个对象,指定小程序的生命周期函数以及自定义的函数或者数据。

通过这些函数,我们可以在小程序状态更变时,进行一些全局信息的获取。例如启动小程序时,获取用户信息、门店信息等等,然后存入到全局数据中。

整个逻辑层大部分的代码都会写在函数中,中承接着整个页面的数据、生命周期函数,以及在视图中绑定的事件的触发函数(例如点击事件)。

如上,函数因为是页面级别的,所以拥有着更多的生命函数,会有下拉刷新事件、页面到达底部的事件。

逻辑层执行onLoad和onShow方法,然后等待视图层的通知,在接收到视图层的通知之后发送数据给视图层,然后继续等待视图层的通知;

视图层根据数据进行初次渲染后通知逻辑层渲染完毕,逻辑层调用onReady方法。然后后续的行为逻辑层可以通过再次发送数据重新渲染视图层。

首先,的data会被用于页面的初始化渲染,之后,用户会在页面上——也就是展示层——触发事件。

举个例子:用户在点餐小程序,产生了「点击加菜按钮」这样的事件。页面监听到这个事件之后,会触发在函数中申明的自定义事件。

在上面,我们提到内可以设置全局数据。我们在每个里,都可以通过全局函数getApp()来拿到全局的引用实例。之后,我们就可以利用它访问页面的数据。

比如我们在购物车下完单之后回到菜单页可能会需要进行菜单的刷新,我们在购物车页面就会调用().data.menuRefresh = true,然后在菜单页的onShow方法进行判断,例如:

在每个 Page 内,我们还可以用来获取当前页面栈的实例。它返回的是数组形式的数据,第一个元素为首页,最后一个元素为当前页面。

需要注意的是,我们不能手动去尝试修改页面栈,我们只能根据页面栈,来分析是使用哪种微信的 API 来跳页面。这里的跳转 API 还会在下面进行讲解。

小程序是支持模块化的,并且支持 Common.js 的模块化写法,也就是module.exports或者exports

小程序目前并不支持引入node_modules,也就是并不支持第三方的模块。当我们需要使用到外部的依赖的时候,建议直接将代码拷贝到小程序的目录中,然后通过相对路径的require函数进行引入。

小程序作为微信的一个重要功能,微信的框架提供了非常丰富的微信原生 API,可以方便的调起微信提供的能力。

除了视图层的一些原生组件外,还有一些功能性的 API,如扫码,定位,媒体播放,本地存储以及支付功能等等。

由于小程序的框架并非运行在浏览器中,所以 JavaScript 在 web 端的一些能力都无法使用。除了上面提到的 Cookie,还有 DOM 元素操作也无法使用。

开发者所有代码最终会被打包成一份 JavaScript,在小程序启动的时候运行,直到小程序销毁。这一点类似于浏览器的 ServiceWorker,所以逻辑层也称之为 App Service。

相关案例查看更多