火车是朝前开的,去哪儿并不重要,关键在于窗外的风景。
小程序中js与浏览器中js有什么不同
就相当于问小程序中的javascript和javascript书写格式
小程序中没有Dom和Bom对象
小程序中新增了
App方法 用于定义应用程序实例对象
Page方法 用于定义页面对象
微信小程序由一个应用程序实例对象+多个页面对象构成
getApp 方法 用来获取全局应用程序对象
每个小程序有一个唯一的应用程序示例,可以通过getApp方法在任何位置拿到这个示例。
扩展
getCurrentPages 方法 用来获取当前页面的调用栈(数组,最后一个就是当前页面)
个人理解:该方法就是用来获取调用的所有的页面,第一个访问的在最下面,最后一个访问的在最上面,这些页面组成了一个数组,
在测试使用getCurrentPages 方法时,使用tabbar页面切换的方式,发现数组的长度length始终是1,
错误点在于:Tab切换 页面全部处栈,只留下新的Tab页面,可以使用页面链接跳转时使用该方法。
let page = getCurrentPages()
console.log(page) //打印页面栈所有痕迹
增删改查 全局数据
设置全局变量
在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的。
效 果 图
App({
globalData: {
hasLogin: false,
},
onLaunch: function () {
}
})
获取全局变量
如我在全局设置了hasLogin属性就可以直接this
在app.js中直接this.globaldata.hasLogin
this.globalData.hasLogin
在其他页面需要先声明getApp(),才能获取到
千万不要写成 app() 这样就变成了全局设置,先当于修改全局app()
let app = getApp()
Page({
data:{}, //存放数据
/**
* 生命周期函数--监听页面显示
*/
onShow() {
console.log(app.globalData.hasLogin)
}
})
修改全局数据
直接修改就行
如 app.globalData.hasLogin =true
住:app.globalData 他是个对象,如果直接修改他,会造成数据丢失。所以修个单个数据
如果app.globalData 的数据多,也不能直接修改全局,单个修改
let app = getApp()
Page({
data:{}, //存放数据
/**
* 生命周期函数--监听页面显示
*/
onShow() {
console.log(app.globalData.hasLogin)
app.globalData.hasLogin =true
}
})
不管我们几岁,只要信仰年轻,我们就依旧年轻;人老了不是最惨的,心老才是最可怕的,心老了青春就真的就救不会来了。