微信小程序传参思路

微信小程序传参

1.微信小程序组件传参之 父传子
父组件WXML
// 父组件像子组件传参的作用是让子组件显示父组件的某些数据
//例如:自定义组价 ipt 
//当用户输入错误或者没输入就想提交时,我就必须向他传送某些信息如:必填选项
//父页面的WXML
<ipt remained="错误信息为:介是个必填选项" bind:blur="isBlur"></ipt>
//remainded里面是我想传送过去的值,bind:blur里面的Blur是子组件传递过来的触发事件名字,isBlur是当我触发了整个blur时,父组件接受参数的函数
父组件JS
// 
Page({
  data: {
    msg:""
  },
  //子组件的触发函数
  isBlur(e){
	//此时的e为子组件穿过来的值
	console.log("让老衲看看这小子传个啥")
	}
})
2.子页面
子页面的js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
  //这个propertie就是所有父组件出传递过来的数据了
 		remained:String
 		//这个对象的意思是 我需要父组件传递给我remained这个字段,然后这个字段的值我需要是字符串类型的
 		
  },
  //这里是子页面的函数区域
  methods:{
  //当input发生失去焦点的时候,我就要执行change
		change(e){
			console.log(e)
			let value = e.detail.value
			//这里的部分就是向父组件传递事件和值的地方了
			this.triggerEven('blur',value)
			
		}
	}

 
})
子页面的WXML
// 这里就是当我input输入框失去焦点的时候 我来触发change 然后在父元素那里触发 isBlur 
<input bindblur="change"></input>
//这里就是remained就是父元素传过来的值了
<text>{{remained}}</text>
总计一下
1. 父元素向子元素传递只需要 在子组件中添加一个键值对 例如: 
// 父页面
<子组件 msg="我想要传过去啊啊啊啊"><子组件>
//其中 msg 是需要穿过来的键名 ,值是后面的"我想要传过去啊啊啊啊"
2.在子组件中只需要在properties中添加这
// 子组件页面
properties:{
	msg:String
	//其中msg 是键名(和父元素一样),String 是我需要的类型
	//如果不写类型会报错
}
 2.子元素向父元素传值呢?

1.向父元素传值必须子组件触发事件

// 父页面WXML
<子组件  bind:aaa="isChange"></子组件>
//其中的aaa是子组件传递过来的函数名,这个是子组件定义的,
//isChange是父组件随便定义的
// 父页面JS
isChange(e){
	里面的e就是子组件穿过来的值
}

2.到了子组件了

// 子组件的WXML ,用input是因为input是最常见的子传父
<input bindblur="isBlur"></input>
//当我失去焦点时,我要触发isBlur
// 子组件的JS
methods:{
//这个事件触发我就会向父页面传递一个函数和一个值
	isBlur(e){
		this.triggerEven('aaa',e.detail.value)
		//其中aaa是我的自定义事件,负责在父页面触发,事件后面的是我想传过去的值
	}
}
### 微信小程序 Component 组件间传参方法 #### 使用 `properties` 实现父组件向子组件传参微信小程序中,可以通过设置自定义组件的 `properties` 属性来接收来自父组件的数据。这允许开发者轻松地将数据从父级递给子级。 ```javascript // 子组件 wxml 文件 <view>{{message}}</view> // 子组件 js 文件 Component({ properties: { message: String, // 定义一个名为 'message' 的属性 }, }) ``` 当在页面或其他组件中引入并使用此自定义组件时,可以像下面这样指定要递的信息: ```html <!-- 父组件或页面 --> <custom-component message="你好,世界"></custom-component> ``` 这种方式使得消息能够被成功发送到目标组件,并显示出来[^1]。 #### 利用事件机制完成子组件向父组件反馈信息 对于反向通信——即由子组件触发并向其上级报告某些状态变化,则需依赖于事件绑定技术。具体做法是在子组件内部调用特定的方法发出通知;而在外部则预先设定好相应的处理器等待响应。 ```javascript // 子组件 js 文件 Component({ methods: { sendDataToParent() { const data = { name: "Alice", age: 28 }; this.triggerEvent('childData', data); } } }) // 父组件 js 文件 Page({ handleReceiveDataFromChild(event) { console.log(event.detail); // 接收到的数据对象 } }); ``` 接着,在 WXML 结构里关联起这两个部分: ```html <!-- 父组件模板 --> <custom-component bindchildData="handleReceiveDataFromChild"></custom-component> <button onTap="sendDataToParent">点击我</button> <!-- 假设这是触发条件 --> ``` 上述代码展示了如何让子组件主动推送更新至父节点的过程[^3]。 #### 数据双向同步模式下的应用实践 有时可能希望两个方向上的交互更加紧密耦合一些,比如实现表单控件的状态实时共享等场景下尤为有用。此时可借助框架所提供的内置功能或者自行设计一套解决方案达成目的。 不过值得注意的是,虽然理论上可行,但在实际项目开发过程中应谨慎考虑是否真的有必要采用如此复杂的设计思路,因为过度追求灵活性反而可能导致维护成本上升等问题发生。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值