前言
人生果然处处充满着惊吓,上次拿到几个offer之后,去了一家薪资待遇很不错的公司,上班第一天,就告诉我,他们这个项目设计稿上个月就定稿了,蓝湖上面的UI图已经裁剪完毕了,后端已经写好接口了,我想着是不是只用对接口就行了,结果产品告诉我,不是,前端还没开始写,下周交项目。。。,看了一下蓝湖,50多个页面,一字没写,下周交,我,呵呵。。,我怕不是没睡醒,为了来这家公司,其他的offer全推了,结果,心态炸裂,晚上下班辞职走人,继续找工作。。。
商品详情
又经过一周的努力,来了一家感觉很不错的公司,不过面试的时候,问的全是Vue.js的问题,项目讲解,甚至线上演示,都是Vue.js,结果入职之后,告诉我,他们要开发小程序,我。。。,好吧,一年没碰过小程序了。。。
查看商品详情
通过点击该商品,跳转到与该商品对应的详情页面,通过小程序开发文档,可以得到:如果一个页面由另一个页面通过wx.navigateTo打开,这两个页面将建立一条数据通道:被打开的页面可以通过this.getOpenerEventChannel()方法来获得一个EventChannel对象;wx.navigateTo的success回调也可以包含一个EventChannel对象,这两个EventChannel对象间可以通过使用emit和on方法互相方式、监听事件。
- 在商品列表展示页面的
.js文件中定义页面跳转方法
datailFn(){
// 采用wx.navigateTo方法来跳转页面
wx.navigateTo({
// 详情页面的位置
url: '../detail/detail',
// 成功时跳转页面,并传递数据
success:(res)=>{
// 通过eventChannel向跳转页面(详情页面)传递数据
res.eventChannel.emit('acceptDataFromOpenerPage',
{goods:this.data.goods})
}
})
// 将数据传递到跳转的页面
}
2.在商品详情页面的.js文件中定义onLoad方法来获取数据
// 在跳转到的页面(详情页面),通过EventChannel.on来获取数据
onLoad(option){
const eventChannel = this.getOpenerEventChannel()
//监听acceptDataFromOpenerPage事件,获取跳转页面(商品列表页面)
// 通过eventChannel传递过来的数据
eventChannel.on('acceptDataFromOpenerPage',data =>{
this.setData({
goods:data.goods
})
})
//跳转的页面获取的数据
}
查看商品详情结束
小程序页面内分享
在开发小程序的时候,经常需要用到分享功能,有的采用小程序自带的左上角的转发分享,有的是页面内单独的一个分享/转发按钮,实现方法如下:
- 通过
button按钮,设置open-type='share'属性,可以实现用户点击页面内的转发/分析按钮后,触发Page.onShareAppMessage事件,实现过程如下: 2.在需要的转发/分享的.wxml文件中添加如下代码<button open-type="share">转发/分享</button>3.在对应的.js文件中添加onShareAppMessage方法
onShareAppMessage:function(res){
var that = this;
if(res.from === 'button'){
//console.log('页面内分享/转发')
}else if (res.from === 'menu'){
//console.log('页面右上角分享/转发')
}
//返回数据(添加转发/分享的数据)
return{
title:that.data.info.name,
//添加转发/分享的页面(整个页面)
path:'/pages/detail/detail',
//添加转发/分享的商品
// path:'/pages/food/info?id=' + that.data.info.id,
success:function(res){
//转发成功
},
fail:function(res){
//转发失败
}
}
}
最后
可能进一家公司,面试的内容和用到的完全完全没有一丁点关系,不过就当学习了,毕竟多掌握一门技术,找工作总是会容易一些,在此特别提示,最好拿到offer后,问一下,他们公司现在做的项目,进度怎么样了,排期多久,不要去了之后,发现一个项目,前端一个字没写,下周交,心态炸裂!!!