1.eventChannel-页面间通信
如果一个页面通过wx.navigateTo打开一个新页面,这两个页面之间将建立一条数据通道
- 在wx.navigateTo的success回调中通过eventChannel对象发射事件
- 被打开的页面可以通过this.getOpenerEventChannel()方法获得一个eventChannel对象,进行监听发射事件
- wx.navigateTo方法中可以定义events配置项接收被打开页面发射的事件
wx.navigateTo({
url: '/miniprogram/pages/list/list.js',
events: {
currentevent: (res) => {
console.log(res);
}
},
success (res) {
res.eventChannel.emit('myevent', {name: 'tom'})
}
})
// pages/list/list.js
Page({
onLoad () {
// 获取EventChannel对象
const EventChannel = this.getOpenerEventChannel()
//监听页面发射的自定义事件
EventChannel.on('myevent', (res) => {
console.log(res);
})
// 通过EventChannel提供的emit方法 可以向上一级页面传递数据
// 需要使用emit定义自定义事件,携带需要传递的数据
EventChannel.emit('currentevent', {age: 10})
}
})
2.组件通信-事件总线
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理机制,允许不同的组件彼此之间通信,常用于两个非父子关系组件和兄弟组件之间通信。
通过借助第三方的发布订阅JS包来实现
// 引入
import PubSub from 'pubsub-js'
组件1
Page({
methods: {
sentData() {
//publish 发布、发射自定义事件
// 自定义事件的名称
// 需要传递的数据
PubSub.publish('myevent', this.data.name)
}
},
})
组件2
// 钩子函数
lifetimes: {
attached () {
// subscribe订阅、监听自定义的事件
// 需要订阅、监听自定义的事件的名称
// 回调函数,(有两个参数)
// msg:自定义的事件的名称
// data:传递过来的数据
PubSub.subscribe('myevent', (msg,data) => {
console.log(msg,data)
this.setData({
name: data.name
})
})
}
}
3. 自定义导航栏
在app.json或者page.json中,配置navigationStyle属性为custom,就可以自定义导航栏,在设置完以后,就会移除默认的导航栏,只保留右上角胶囊按钮
{
"usingComponents": {},
"navigationStyle": "custom"
}
<swiper class="custom-swiper" indicator-dots autoplay="true" interval="2000">
<swiper-item>
<image src="" mode=""/>
</swiper-item>
<swiper-item>
<image src="" mode=""/>
</swiper-item>
<swiper-item>
<image src="" mode=""/>
</swiper-item>
</swiper>
4.上线发布
5.慕尚花坊-申请开发权限
将自己的微信号发送给对应小程序账号的管理员,而不是手机号
开发设置,AppID
1.创建项目与项目初始化
2.自定义构建npm+集成sass
将源码文件移动到miniprogram
3. 集成项目页面文件
4. 使用vsCode开发小程序项目时,如果需要预览、依然需要借助微信开发者工具
5. 根目录 .vscode文件夹中 settings.json文件只对当前项目生效
6. 如果想配置项生效,要注意:在vscode中只能打开一个小程序项目,不能同时打开多个,且项目目录不要嵌套打开