html之间传参和接收

在第一个html里传参:

 <button class="layui-btn layui-btn-sm" onclick="javascript:window.open('nonSelfDataList.html?beginTime='+ document.getElementById('beginTime').value+'&endTime='+ document.getElementById('endTime').value+'&flag='+ document.getElementById('flag').value)"><i class="layui-icon">&#xe615;</i>未开启自有数据top10</button>
 

在第二个html里接收参数:

var str=window.location.href;//取地址参数部分
var url = str.split("?")[1];
var beginTime = url.split("beginTime=")[1].split("&")[0];
var endTime = url.split("endTime=")[1].split("&")[0];
var flag = url.split("flag=")[1].split("&")[0];
//alert("bb:"+url);//bb:beginTime=2019-06-19&endTime=2019-07-18&flag=TELCHECK_IN
//alert("cc:"+beginTime+"**"+endTime+"**"+flag);//cc:2019-06-19**2019-07-18**TELCHECK_IN

### 微信小程序中 Component 组件的传参接收方法 在微信小程序开发中,`Component` 是构建自定义组件的核心工具。通过 `Component`,可以实现父子组件之间的数据传递事件通信。以下是关于微信小程序中 `Component` 的传参接收以及数据绑定的详细说明。 --- #### 1. 父组件向子组件传参 父组件可以通过属性绑定的方式将数据传递给子组件。子组件需要通过 `properties` 定义可接收参数,并通过 `this.properties` 获取这些参数[^2]。 **父组件示例:** ```html <view> <child-component message="{{parentMessage}}"></child-component> </view> ``` **子组件定义:** ```javascript Component({ properties: { message: { // 定义可接收参数 type: String, // 参数类型 value: '' // 默认值 } }, methods: { showMessage() { console.log(this.properties.message); // 输出父组件传递的数据 } } }); ``` --- #### 2. 子组件向父组件传参 子组件可以通过触发事件的方式将数据传递给父组件。父组件需要监听子组件的事件,并通过事件对象的 `detail` 属性获取传递的数据[^1]。 **子组件触发事件:** ```javascript Component({ methods: { sendDataToParent() { this.triggerEvent('customEvent', { data: '子组件传递的数据' }); // 触发事件并传递数据 } } }); ``` **父组件监听事件:** ```html <view> <child-component bindcustomEvent="handleCustomEvent"></child-component> </view> ``` ```javascript Page({ handleCustomEvent(event) { console.log(event.detail.data); // 接收子组件传递的数据 } }); ``` --- #### 3. 数据绑定与动态更新 微信小程序支持通过 `data` 属性进行数据绑定,并且可以通过 `setData` 方法动态更新组件内部的状态。这种机制适用于组件内的数据管理[^5]。 **组件内部数据绑定:** ```javascript Component({ data: { message: '这是定义在组件内的消息!' }, methods: { updateMessage() { this.setData({ // 动态更新数据 message: '组件函数改变了消息!' }); } } }); ``` --- #### 4. 获取子组件实例 父组件可以通过 `selectComponent` 或 `selectAllComponents` 方法获取子组件的实例,从而直接访问子组件的方法或数据[^3]。 **父组件获取子组件实例:** ```javascript Page({ onLoad() { const child = this.selectComponent('#child'); // 获取子组件实例 child.childMethod(); // 调用子组件的方法 } }); ``` **子组件定义方法:** ```javascript Component({ methods: { childMethod() { console.log('子组件的方法被调用了'); } } }); ``` --- #### 5. 跨层级组件通信(EventChannel) 对于跨层级的组件通信,可以使用 `EventChannel`。它允许父组件在创建子组件时传递一个事件通道,子组件可以通过该通道与父组件或其他组件通信[^1]。 **父组件创建 EventChannel:** ```javascript Page({ onShareAppMessage() { const eventChannel = this.getOpenerEventChannel(); eventChannel.emit('acceptDataFromOpenerPage', { data: '来自父组件的数据' }); } }); ``` **子组件接收数据:** ```javascript Component({ attached() { const eventChannel = this.getOpenerEventChannel(); eventChannel.on('acceptDataFromOpenerPage', (data) => { console.log(data); // 接收父组件传递的数据 }); } }); ``` --- ### 示例总结 以下是一个完整的父子组件通信示例: **父组件:** ```html <view> <child-component message="{{parentMessage}}" bindcustomEvent="handleCustomEvent"></child-component> </view> ``` ```javascript Page({ data: { parentMessage: '来自父组件的消息' }, handleCustomEvent(event) { console.log(event.detail.data); // 接收子组件传递的数据 } }); ``` **子组件:** ```javascript Component({ properties: { message: { type: String, value: '' } }, methods: { sendDataToParent() { this.triggerEvent('customEvent', { data: '子组件传递的数据' }); } } }); ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值