微信小程序页面跳转、逻辑层模块化
一、页面的跳转 微信小程序的页面跳转函数方法有两个,另外还有两种模块跳转方式。 函数跳转: 1.wx.navigateTo(OBJECT): wx.navigateTo({ url: ‘test?id=1‘ }) //问号后面的参数为传递至指定页面onload方法内的参数。id为自定义参数名,在跳转页面获取参数值时,也是通过这个设置的参数来获取的。
2.wx.redirectTo(OBJECT): wx.redirectTo({ url: ‘test?id=1‘ }) //问号后面的参数为传递至指定页面onload方法内的参数。id为自定义参数名,在跳转页面获取参数值时,也是通过这个设置的参数来获取的。
模块跳转: 1.标签跳转: ? 在wxml中添加一个navigator元素,实现跳转。 <navigator url=‘../list/list‘>点击我</navigator> 2.tabBar跳转: 在主页中设置tabBar,在tabBar中设置跳转页面。通过点击其中的图标,实现跳转。 { "tabBar": { "list": [{ "pagePath": "index","text": "首页" },{ "pagePath": "other","text": "其他" }] } } 通过wx.switchTab(OBJECT)方法,可以从非tabBar跳转至tabBar页面,并关闭所有其他非tabBar页面。 wx.switchTab({ url: ‘/index‘ })
页面的返回: ? ? ? ? ? ? ?关闭当前页面,返回上一页面或多级页面。可通过getCurrentPages()获取当前的页面栈,决定需要返回几层。? OBJECT 参数说明: ?
? // 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码 // 此处是A页面 wx.navigateTo({ url: ‘B?id=1‘ }) // 此处是B页面 wx.navigateTo({ url: ‘C?id=1‘ }) // 在C页面内 navigateBack,将返回A页面 wx.navigateBack({ delta: 2 }) 二、逻辑层的模块化: 调用全局函数getApp()可以获取小程序的全局应用实例,如果需要全局有效的数据我们可以再App()中定义。 //app.js App({ myNumber:1,}) //logs.js onLoad: function () { var app = getApp() app.myNumber++ } //list.js onLoad: function (options) { console.log("我的数据是:",getApp().myNumber); }, 为了提高代码的可读性和效率,可以通过小程序的模块化特性,将公用的或者需要重复复用的代码从程序里抽取出来,打包成单独的.js文件(微信小程序在创建之初就有一个utils/utils.js文件作为js模块,里面暴露了一个获取当前时间的方法),提供某种特定的功能,这就是程序的模块。如果你想要在外部使用utils.js中封装的方法,只能通过module.exports和exports方法对外暴露接口。 module.exports = { formatTime: formatTime,‘对外方法名‘:‘本地方法名‘ } 如何在需要使用这些模块的文件中使用:使用 require(path) 将公共代码引入(require 暂时不支持绝对路径)。 //util.js function sayHello(name) { console.log(`Hello ${name} !`) } module.exports = { sayHello: sayHello } var util= require(‘../../utils/util.js‘) Page({ data:[],onLoad: function() { console.log(util.sayHello(‘Cc‘)) },}) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |