微信小程序

注册组件

  • 创建组件
    1. 创建components文件夹
    2. 创建tabs和list文件夹
    3. 右键新建Component
  • 使用组件
    1. 找到页面的.json文件
    2. 在usingComponents选项下注册组件
javascript 复制代码
//1.key为当前组件在该页面中的标签名
//2.value为组件的代码路径
{
  "usingComponents": {
    "navigation-bar": "/components/navigation-bar/navigation-bar"
  }
}

组件的生命周期

组件的生命周期应该被定义在lifetimes中,而方法必须要放入到methods中。

组件的生命周期一共有三个:

  1. created :组件实例刚刚被创建好。此时还不能调用setData
  2. attached: 组件完全初始化完毕、进入页面节点树后。绝大多数初始化工作可以在这个时机进行
  3. detached:在组件离开页面节点树后
javascript 复制代码
data:{},
//组件中的方法必须定义到methods选项中
methods:{},
//组件生命周期
lifetimes:{
//组件完全初始化完毕、进入页面节点树后
	attached(){
	}
}

监听器

通过数据监听器:observers

javascript 复制代码
data:{},
//组件中的方法必须定义到methods选项中
methods:{},
observers:{
	//key:要监听的数据
	//value:数据变化时,调用的函数 
	active:function(val){
		//val变化之后的值 
		
	}
}

组件传递数据方式

  1. 父子关系
    1. 父向子传参
javascript 复制代码
//子组件:通过proberties声明要从父组件中接收的数据
properties:{
	tabId:String
}
//父组件:通过自定义属性的形式传递数据,以子组件中定义的key为属性名,以要传递的数据为属性值 
<list tabId="{{tabSelectId}}"
  1. 子向父传参
javascript 复制代码
//子组件:通过triggerEvent方法发送一个通知,通知父组件接收数据。
//方法的第一个参数为:通知名
//方法的第二个参数为:要传递的数据
this.triggerEnent('change',{
	id
})
//父组件:通过bind监听子组件中发送的通知
//bind后的内存为子组件发送的通知名,表达式为接收到该通知时所触发的方法
<tabs bind:change="onTabChange"></tabs>
//方法触发后可以通过e.detail的形式获取子组件传递过来的数据对象
onTabChange(e){
	const {id} = e.detail;
	this.setData({
		tabSelectId:id
	})
}
  1. 兄弟关系
    兄弟组件之间传参:兄弟关系===没有关系,所以想要完成兄弟之间的传参,就要为它们建立关系,找一个中间人,这个中间人一般为统一的父组件
    【A兄弟组件】传递给父组件(中间人)
    中间人再把数据传给【B兄弟组件】
相关推荐
前端 贾公子14 小时前
小程序蓝牙打印探索与实践(上)
小程序
拙慕JULY15 小时前
小程序返回 base64 文件报错
开发语言·javascript·小程序
dh1312225052516 小时前
按月季度销售业绩核算小程序
小程序·销售小程序·绩效小程序·业绩统计小程序·业绩核算小程序
拙慕JULY16 小时前
微信小程序自定义标题背景色
微信小程序·小程序
前端 贾公子18 小时前
小程序蓝牙打印探索与实践(下)
小程序·apache
00后程序员张18 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
万岳科技系统开发21 小时前
骑手配送系统如何支持外卖与跑腿一体化运营
大数据·前端·小程序
2501_9159090621 小时前
iOS IPA文件反编译与打包操作方法详解
android·ios·小程序·https·uni-app·iphone·webview
克里斯蒂亚诺更新2 天前
微信小程序使用vant4 weapp自定义菜单 但是弹出层却被菜单遮挡的解决办法
微信小程序·小程序·notepad++
静Yu2 天前
从一个九宫格素材小程序,看轻量工具产品该如何优化体验
前端·微信小程序