自定义组件的基础知识【认识自定义组件以及父(页面)子(组件)传值】

创建自定义组件涉及JSON配置、WXML结构、WXSS样式和JS逻辑。在JSON中设置component:true标识为组件。WXML中使用<slot>定义插槽内容。在JS中通过properties接收父组件传递的值并进行数据处理。页面通过usingComponents引入并使用自定义组件,通过data属性进行父子通信。
摘要由CSDN通过智能技术生成
  1. 创建自定义组件:类似于页面,一个自定义组件由json、wxml、wxss、js 4个文件编写。

  • 要编写一个自定义组件,首先需要在自定义组件的json文件里设置

{
    “component”:true
}
  • 在自定义组件的wxml里面进行自定义组件wxml的编写

<!--<slot></slot>为页面中,在自定义组件标签内编写的内容 -->
<view class="first-test">
  <view>
    这是组件slot中的内容
  </view>
  <slot></slot>
  <view>slot的下面的内容</view>
</view>
  • 在自定义组件的js/ts中进行页面给组件的传值的接收(父子传值)

export default Component({
//properties接收参数
    properties:{
//data--->父组件传值时里面定义的data
        data:{
             type:Object,  //父组件传来的类型
             //observe实现监听的效果
                observer:function(newVal){
                    console.log("newVal",newVal)
                     if(newVal){
                        //在这里就可以给data里的数据赋值了
                        this.setData({})
                          }
                      }
               }
       }
//数据监听器支持监听属性或内部数据的变化,可以同时监听多个。一次 setData 最多触发每个监听器一次。
 
//使用通配符**可以监听全部setData。
    observers:{
    '**':function(){
     //每次setData都能触发
        }
  1. 页面中

  • 在页面的json文件中引入自定义组件

/*
"my-component"-->自定义组件名
"/src/pages/components/firsy-test":路径
*/
{
    "usingComponents":{
        "my-component":"/src/pages/components/firsy-test"
    }
}
  • 在页面的wxml文件中使用自定义标签名进行自定义组件的使用

<!--   formaData:父组件传给子组件的数据 (父组件的js定义的数据)
       data:子组件来接收父组件数据的变量名
 -->
<view class="custom-page">
  CustomComponents
  <view>
    <view>这是组件内部的节点</view>
    <my-compoent data="{{formaData}}">
        <view>组件内slot所对应的值</view>
    </my-compoent>
  </view>
</view>
  • 页面中的js/ts定义的数据

data:{
    formData:{
        
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值