微信小程序开发微信小程序微信小程序开发

小程序(二)WePy框架的组件

2018-01-18  本文已影响85人  ZoranLee

小程序(二)WePy框架的组件

[TOC]

吐槽一下wepy文档:对没有做过前端的同志们是很不友好的,内心受到了一万点伤害。/(ㄒoㄒ)/~~

WePy组件化

[普通组件引用]
<template>
    <view class="child1">
        ③<child></child>
    </view>

    <view class="child2">
        <anotherchild></anotherchild>
    </view>
</template>
<script>
    import wepy from 'wepy';
     ① import Child from '../components/child';
    export default class Index extends wepy.component {
         ②components = {
            //为两个相同组件的不同实例分配不同的组件ID,从而避免数据同步变化的问题
          ② child: Child,
            anotherchild: Child
        };
    }
</script>

[普通组件静态传值]

[传值]:<child :item="item"></child>

[接受]:
    props = {
            item: String//可以指定接受类型,现在为String类型
    };
[使用]:
    onLoad () {
        console.log(this.item); 
    }

[普通组件动态传值]

​ twoWay默认表示子组件不向父组件传值,可不写

官网示例:
<child 1️⃣:title="parentTitle" 2️⃣:syncTitle.sync="parentTitle" 3️⃣:twoWayTitle="parentTitle"></child>

props = {
    // 静态传值
    1️⃣title: String,

    // 父向子单向动态传值
    2️⃣syncTitle: {
        type: String,
        default: 'null'
    },

    3️⃣twoWayTitle: {
        type: Number,
        default: 'nothing',
        twoWay: true
    }
};

onLoad(){
 this.$apply();
 this.$parent.$apply();
}

[普通组件之间通信]

this.$emit('some-event', 1, 2, 3, 4);

处理函数需要写在组件和页面的events对象中

events = {
        'some-event': (p1, p2, p3, $event) => {
               console.log(`${this.$name} receive ${$event.name} from    ${$event.source.$name}`);
        }
    };
上一篇 下一篇

猜你喜欢

热点阅读