900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信小程序父级之间的传值_微信小程序自定义组件封装及父子间组件传值的方法...

微信小程序父级之间的传值_微信小程序自定义组件封装及父子间组件传值的方法...

时间:2018-07-25 15:39:33

相关推荐

微信小程序父级之间的传值_微信小程序自定义组件封装及父子间组件传值的方法...

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

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

wxzx-loadmore.wxml

正在加载

{{tip}}

这里就是把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 父组件

response="{{comment_list}}"

is_loadmore="{{is_loadmore}}"

bind:myevent="get_emit"

>

index.js 中

// 接受子组件的传值

get_emit: function(e) {

this.setData({

is_show: e.detail.val

})

},

index.json 这里需要引入组件,在哪个父页面中引用子组件,就在哪个json文件中引入

{

"usingComponents": {

"wxzx-loadmore": "/component/wxzx-loadmore/wxzx-loadmore"

}

}

父组件向子组件传参

声明:A组件为父组件,B组件为子组件,以下是A组件向B组件传参:

在A组件中引入B组件

在A组件的json中写入:

{

"component": true,

"usingComponents": {

"componentB": "../child2/child2"

}

}

在A组件的wxml中写入:

我是组件A

子组件内容:

在B组件的js中写入:

Component({

behaviors: [],

properties: {

paramAtoB:String

},

data: {

}, // 私有数据,可用于模版渲染

// 生命周期函数,可以为函数,或一个在methods段中定义的方法名

attached: function() { },

moved: function() { },

detached: function() { },

methods: {

}

})

即在properties中定义A组件要传过来的参数类型

在B组件的wxml中写入:

我是组件B

A中传入的参数:{{paramAtoB}}

总结: A组件向B组件传参,实际上就是在A组件中引入B组件的时候,带上一个属性paramAtoB,并且给其赋值,然后B组件通过这个属性名称paramAtoB,获取其值

子组件向父组件传参

声明:A组件为父组件,B组件为子组件,以下是B组件向A组件传参:

要让子组件给父组件传参,首先得在父组件引入子组件的时候,加个触发事件,如下:

在父组件A中wxml:

我是组件A

A组件内容:

B组件传入参数:{{paramBtoA}}

myevent就是绑定的触发事件

在父组件A中js:

Component({

behaviors: [],

properties: {

},

data: {

}, // 私有数据,可用于模版渲染

// 生命周期函数,可以为函数,或一个在methods段中定义的方法名

attached: function() { },

moved: function() { },

detached: function() { },

methods: {

onMyEvent:function(e){

this.setData({

paramBtoA: e.detail.paramBtoA

})

}

}

})

onMyEvent就是当被子组件触发时的函数

在子组件B中wxml:

我是组件B

A中传入的参数:{{paramAtoB}}

向A中传入参数

button按钮点击事件一触发,就可以传入参数进入父组件A中,在子组件B中js:

Component({

behaviors: [],

properties: {

paramAtoB:String

},

data: {

}, // 私有数据,可用于模版渲染

// 生命周期函数,可以为函数,或一个在methods段中定义的方法名

attached: function() { },

moved: function() { },

detached: function() { },

methods: {

change:function(){

this.triggerEvent('myevent', { paramBtoA:123});

}

}

})

this.triggerEvent就是按钮点击之后执行的事件,触发myevent事件,传入参数paramBtoA进入父组件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。