【微信小程序开发】 自定义组件 子组件传父组件 父组件传子组件

场景:多个页面使用 UI画面基本一致

举个栗子:拿多个页面 都有搜索框 点击跳搜索页面

实施:

        创建公用组件页面 search

        search.wxml    

        <view class="search">

          <view class="search-inputView flex-align-center" bindtap="callFather">

            <image src="/assets/icons/icon_fd.png" bindtap="jumpsearch"></image>

            <input placeholder="{{inputValue}}" value="" disabled></input>

          </view>

        </view>

        search.css

        .search {position: fixed;top: 0;z-index: 1001;width: 100%; background: #fff; left: 0;font-size: 28rpx;}

        .flex-align-center{display: flex;align-items: center}

        .search-inputView { width: 92%;box-sizing: border-box; margin: 20rpx 0;margin-left: 4%; height: 70rpx;line-height: 70rpx;

              background: rgba(245, 247, 252, 1);padding: 0 30rpx; border-radius: 45rpx;}

        .search-inputView input {width: 85%;margin-left: 10rpx; margin-right: 20rpx;}

        .search-inputView image {width: 35rpx;height: 35rpx;}

        .scroll-view {position: fixed;top: 180rpx;left: 0;z-index: 10002;}

        search.js

Component({

  properties: {

    inputValue: {

      type: String,

      value: 'default value',

    }

  },

  data: {

    // 这里是一些组件内部数据

    someData: {}

  },

  created() {

    console.log('被使用了~~~')

  },

  methods: {

    jumpsearch: function() {

      wx.navigateTo({

        url: '/pages/search/search'

      })

    },

    // 子组件点击 传递参数到父组件 调用父组件事件 

    callFather: function (e) {

      this.triggerEvent('callFather', e) //callFather自定义名称事件,父组件中接收

    },

  }

})

 



       使用组件页面

        index.wxml

        <search inputValue="{{placeholderValue}}"  bind:callFather ="callFather"></search>

         index.json

        {

            "navigationBarTitleText": "首页",

           "usingComponents": {

                  "search": "../public/search",

              }

        }

        index.js

        Page({

          data: {placeholderValue:'哈哈哈'},

           callFather (e){

            console.log(e)//父组件接收 子组件传递的参数

            }    

        })

            注释:公用组件的css 是独立的  没法调用到app.css 的class

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值