zoukankan      html  css  js  c++  java
  • 微信小程序自定义组件封装及父子间组件传值

    首先在我们可以直接写到需要的 page 中,然后再进行抽取组件,自定义组件建议 wxzx-xxx 命名

    官网地址:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

    例如,我们封装的组件名为 **wxzx-loadmore

    • wxzx-loadmore.wxml
    <view hidden="{{response.length < 1}}">
        <view class="weui-loadmore" hidden="{{is_loadmore}}">
            <view class="weui-loading"></view>
            <view class="weui-loadmore__tips">正在加载</view>
        </view>
        <view class="weui-loadmore weui-loadmore_line" hidden="{{!is_loadmore}}">
            <text class="weui-loadmore__tips">{{tip}}</text>
        </view>
    </view>
    

    这里就是把index.wxml中的需要封装成组件的代码原样copy过来

    • wxzx-loadmore.js
    Component({
        /**
         * 组件的属性列表
         */
        properties: {
            response: {
                type: String,
                value: ''
            },
            is_loadmore: {
                type: Boolean,
                value: false
            },
            tip: {
                type: String,
                value: '我是有底线的'
            }
        },
    
        /**
         * 组件的初始数据
         */
        data: {
    
        },
    
        /**
         * 组件的方法列表
         */
        methods: {
    		 emit: function(data) {
                // 自定义组件向父组件传值 
                let val = data,
                    my_event_detail = {
                        val: val
                    }
                // myevent自定义名称事件,父组件中使用
                this.triggerEvent('myevent', my_event_detail)
                 /*
                 	在父组件中写上bind:myevent="get_emit",在父组件中就需要调用get_emit事件
                 */
            },
        }
    })
    
    
    • index.wxml 父组件
        <wxzx-loadmore 
            response="{{comment_list}}"
            is_loadmore="{{is_loadmore}}"
            bind:myevent="get_emit"
            ></wxzx-loadmore>
    <!-- 这就是在父组件中调用子组件,然后基于子组件传值来在父组件中赋值 -->
    
    • index.js 中
    // 接受子组件的传值
        get_emit: function (e) {
            this.setData({
                is_show: e.detail.val
            })
        },
    
    • index.json 这里需要引入组件,在哪个父页面中引用子组件,就在哪个json文件中引入
    {
        "usingComponents": {
            "wxzx-loadmore": "/component/wxzx-loadmore/wxzx-loadmore"
        }
    }
    
  • 相关阅读:
    厚积薄发IT咨询
    厚积薄发SQL技巧
    厚积薄发CSS
    厚积薄发数据库迁移
    厚积薄发系统安全日志已满处理

    厚积薄发SQLServer内核架构浅析
    厚积薄发css布局页面头部
    常用正则表达式
    一条SQL语句OA
  • 原文地址:https://www.cnblogs.com/luxiaoyao/p/9546607.html
Copyright © 2011-2022 走看看