arrs在父组件中的数据 data: { arrs:[ { id:0, title:'足球' }, { id:1, title:'篮球' }, { .._小程序的slot插槽关联值 子组件传值给父组件">
当前位置:   article > 正文

微信小程序子父组件之间传值 和 插槽 slot_小程序的slot插槽关联值 子组件传值给父组件

小程序的slot插槽关联值 子组件传值给父组件

父组件向子组件传值

自定义组件Nav,在父组件中注册并使用

在组件标签上自定义属性 hello和name

<Nav hello="{{arrs}}" name="navs"></Nav>

arrs在父组件中的数据

  1. data: {
  2. arrs:[
  3. {
  4. id:0,
  5. title:'足球'
  6. },
  7. {
  8. id:1,
  9. title:'篮球'
  10. },
  11. {
  12. id:2,
  13. title:'排球'
  14. },
  15. {
  16. id:3,
  17. title:'乒乓球'
  18. },
  19. {
  20. id:4,
  21. title:'羽毛球'
  22. }
  23. ],
  24. }

将自定义的属性注册在子组件Nav的properties 中注册

  1. properties: {
  2. name:{
  3. type:String,
  4. value:''
  5. },
  6. hello:{
  7. type:Array,
  8. value:[]
  9. }
  10. },
  11. }

 子组件模板中直接渲染数组

  1. <view class="tencentNews-nav">
  2. <view
  3. wx:for="{{hello}}"
  4. wx:key="id"
  5. bindtap="click2"
  6. data-index="{{index}}"
  7. class="{{idx2 == index ? 'active' : ''}}"
  8. >{{item.title}}</view>
  9. </view>
  10. <view>{{name}}</view>

 

子组件向父组件传值

 

创建自定义子组件MyBtn 在父组件中注册并使用

子组件定义事件click

  1. <view>
  2. <button type="primary" bindtap="click">子组件传父组件</button>
  3. </view>

 MyBtn .js

  1. methods: {
  2. click:function(){
  3. console.log("__________")
  4. //自定义一个事件 第一个参数 事件名 第二个参数 是传递的数据
  5. this.triggerEvent('myClick',{
  6. 'name':'小程序',
  7. 'age':'5'
  8. })
  9. }
  10. }

父组件中渲染

  1. <MyBtn bindmyClick="hello"></MyBtn>
  2. <view>
  3. {{name}}{{age}}
  4. </view>

父组件中js

  1. data: {
  2. name:'',
  3. age:''
  4. },
  5. hello:function(e){
  6. console.log('---父组件中-------')
  7. console.log(e.detail)
  8. //获取子组件传递的数据
  9. var datas = e.detail
  10. this.setData({
  11. name:datas.name,
  12. age:datas.age
  13. })
  14. },

子组件传值给父组件,在自定义组件中以事件的形式传递 triggerEvent 自定义事件。在父组件中 以组件标签的形式调用组件 将自定义事件绑定在这个组件标签上

小程序插槽slot

插槽 占位符 在自定义组件中,标签内容的获取,使用slot组件

父组件wxml

  1. <MyBtn bindmyClick="hello">
  2. <view>小程序中slot</view>
  3. </MyBtn>

子组件

  1. <view>
  2. <slot></slot>
  3. </view>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/88289
推荐阅读
相关标签
  

闽ICP备14008679号