微信小程序中组件的传值

微信小程序中组件的传值

组件与页面之间的样式隔离

Component({
  options: {
  //isolated:默认值隔离
  //apply-shared:页面影响组件
  //shared:相互影响
    styleIsolation: "isolated"
  }
})

页面向组件传值

// 页面向组件传值
Component({
  properties: {
    title: {
      type: String,
      value: '我是默认标题',
      observer: function(newVal,old){
      	console.log(newVal,old)
      }
    }
  }
})
<my-prop title="我是页面传递过来的值"></my-prop>

组件向页面传值

组件中发出事件

<button size="mini" bind:tap="handleIncrement">+1</button>
// 组件向页面的时间
Component({
  methods: {
    handleIncrement(){
      // 触发页面函数
      this.triggerEvent("increment",{},{})
    }
  }
})

页面上响应事件

<my-event bind:increment="handleIncrement"/>
Page({
  data: {
    counter:0
  },
  handleIncrement(){
    this.setData({
      counter:this.data.counter + 1
    })
  }
})

页面直接修改组件的数据

页面

<button size="mini" bind:tap="increment">修改组件中数据</button>
<my-sel class="sel-class"/>

Page({
  // 直接修改组件内的数字
  increment(){
    const my_sel = this.selectComponent('.sel-class')
    console.log(my_sel)

    // my_sel.setData({
    //   counter:my_sel.data.counter + 1
    // })
	// 调用组件的方法对数据进行修改
    // my_sel.incrementCounter(10)
  }
})

组件

<view>组件内的数字:{{counter}}</view>
Component({
  data: {
    counter: 0
  },
  methods: {
    incrementCount(num){
      this.setData({
        counter:counter + num
      })
    }
  }
})

插槽

<view>我是my-slot的头部</view>
<!-- <slot/> -->
<!-- 具名插槽 -->
<view class="slot1"><slot name="slot1"></slot></view>
<view class="slot2"><slot name="slot2"></slot></view>
<view>我是my-slot的尾部</view>

<my-slot>
  <view slot="slot2">我是中间</view>
  <view slot="slot1">我是slot1</view>
</my-slot>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值