• 微信小程序开发六(自定义组件)


    自定义组件的创建:

          如何创建:

        

        

        

        

         右键选择新建component

        

           创建完成之后需要打开app.json,这是全局使用这个组件,想要单独的页面使用,就在当前页面的json文件中定义

    1. "usingComponents": {
    2. "my-zj": "./components/test/test"
    3. }

     如何使用:打开任意页面的wxml页面

          

    <my-zj></my-zj>

    插槽的作用:页面可以向组件传入信息

    组件插槽的使用:

         定义插槽:wxml页面

       

    <slot name="one"></slot>
    

         页面如何传入内容

    1. <my-zj>
    2. <view slot="one">插槽的内容</view>
    3. </my-zj>

          需要注意: 默认插槽每个组件只能使用一个,开启多个插槽需要在js文件中设置options:{}在这个里面开启

         组件js页面开启多个插槽:

    1. options:{
    2. // 开启多个插槽
    3. multipleSlots:true
    4. }

         组件的wxml页面:

    1. <slot name="one"></slot>
    2. <slot name="two"></slot>

         页面的wxml内容:

    1. <my-zj>
    2. <view slot="one">插槽的内容</view>
    3. <view slot="two">第二个插槽的内容</view>
    4. </my-zj>

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

        多个插槽如何区分的: 单个插槽不需要定义名称

     

     组件接收页面传来的值:

          在页面的js文件中定义一个count变量,赋值101

      count:101

      页面wxml页面上传值:

    1. <my-zj count="{{count}}" id="idChli">
    2. <view slot="one">插槽的内容</view>
    3. <view slot="two">第二个插槽的内容</view>
    4. </my-zj>

       组件如何接收变量值:

           组件js文件:

    1. properties: {
    2. count:Number
    3. },

        定义一个方法每次点击就加五

    1. methods: {
    2. add(){
    3. this.setData({
    4. count:this.properties.count+5
    5. });
    6. }
    7. }

           wxml页面:

    1. <view>{{count}}</view>
    2. <button bindtap="add" type="primary">n+1</button>

        这样就可以获取页面传过来的内容了

       页面如何接收组件传过来的参数呢?

            组件js文件:

    1. methods: {
    2. add(){
    3. this.setData({
    4. count:this.properties.count+5
    5. });
    6. // 从这里就能获取得到父组件中的方法内容并且传递内容
    7. this.triggerEvent("md",{value:this.properties.count});
    8. }
    9. }

           页面wxml文件:

    1. <my-zj count="{{count}}" id="idChli" bind:md="md">
    2. <view slot="one">插槽的内容</view>
    3. <view slot="two">第二个插槽的内容</view>
    4. </my-zj>

         页面js进行接收

    1. md(e){
    2. //console.log(e);
    3. // 通过方法中参数得到数据传输
    4. this.setData({
    5. count:e.detail.value
    6. });
    7. },

        如何在页面使用组件中的方法:

    1. getChil(){
    2. var child = this.selectComponent("#idChli");
    3. child.add();
    4. },

     

        

    1. <my-zj count="{{count}}" id="idChli" bind:updateDa="md">
    2. <view slot="one">插槽的内容</view>
    3. <view slot="two">第二个插槽的内容</view>
    4. </my-zj>
    5. <view class="mes">父组件中的count值:{{count}}</view>
    6. <button type="primary" bindtap="getChil">父获取子值</button>

       

  • 相关阅读:
    介绍两个好用又好玩的大模型工具
    3.2 基于vexpress-a9 arm平台 的QEMU仿真的rootfs镜像环境搭建
    什么是大数据平台?
    [计算机提升] 计算机病毒
    基于Echarts实现可视化数据大屏科技业务数据统计
    如何用一个插件解决 Serverless 灰度发布难题?
    [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
    CAD盗图木马分析与处置策略
    C++求最大公因数(gcd)的六重境界
    关于knike4j接口文档信息泄露的处理记录
  • 原文地址:https://blog.csdn.net/weixin_41670405/article/details/138081790