首页IT科技子父组件传值(uniapp的父传子,子传父,子组件与父组件数据同步(.sync)的理解)

子父组件传值(uniapp的父传子,子传父,子组件与父组件数据同步(.sync)的理解)

时间2025-09-19 10:26:09分类IT科技浏览5319
导读:父传子:...

父传子:

父调用 绑定的子组件中state然后 mystate1赋值false 给子组件中的state              。并在子组件中显示父中传来的值                        。

注意要在子组件中设置 props【属性】不然父中的值无法传过去        。 <view >开启{{mystate1}}</view> --调用子组件mypop                ,并传值 "state" <mypop :state.sync="mystate1" ></mypop> --在父组件中mystate1是false data() { return { mystate1:false }; },

接下来传值给子组件                      ,并显示子组件中传的值"state"

<view> <view>---弹出框--父-{{state}}--子{{state_sun}}</view> </view> </template> <script> export default { name:"mypop", data() { return { }; }, props:{ state:{ type:Boolean, default:true }, state_sun:{ type:Boolean, default:true }, },

这里可以看出        ,子中state原状态为true            ,父传了false                      ,最后在子组件中显示为false           ,同时子组件有个state_sun定义是true显示是true          。

子传父:

只要加个$emit,然后加上参数和值

父中的页面:

定义openMsg方法绑定给@getMsg        ,其中getMsg是子组件中的方法函数                       。通过@使用            。 <comp :name="name" @getMsg="openMsg"></comp>

然后写openMsg方法:打印传过来的值                       ,msg是子组件中传来的值              ,msg是可以随意取的       。

methods: { openMsg(msg) { console.log(msg) } }

子组件中

methods: { sendMsg() { //子传父 this.$emit(getMsg, "我是子,"+this.name); } }

父组件调用子组件的sendMsg方法    ,并绑定给自己的openMsg方法                        ,然后子组件中传来的值 【“我是子,                ”+this.name】通过console打印出来                      。

子组件与父组件数据同步(.sync)

一般子与父数据同步用sync比较简单                。

只要在

e

m

i

t

中加个

u

p

d

a

t

e

参数就可以了    。可以认为父中

s

t

a

t

e

:

s

t

a

t

e

.

s

y

n

c

=

"

m

y

s

t

a

t

e

1

"

】传值给子                  ,子中的

s

t

a

t

e

显示

f

a

l

s

e

,然后子传值给父【

u

p

d

a

t

e

:

s

t

a

t

e

"

,

f

a

l

s

e

】                    ,父中的

m

y

s

t

a

t

e

1

变成了

f

a

l

s

e

                     。只需要在父中添加

:

s

t

a

t

e

.

s

y

n

c

                     ,子中添加

t

h

i

s

.

emit中加个update参数就可以了                    。 可以认为父中state【:state.sync="mystate1"】传值给子    ,子中的state显示false                 ,然后子传值给父【update:state",false】                      , 父中的 mystate1变成了false。 只需要在父中 添加:state.sync         ,子中添加 this.

emit中加个update参数就可以了                  。可以认为父中state:state.sync="mystate1"】传值给子            ,子中的state显示false                      ,然后子传值给父【update:state",false】           ,父中的mystate1变成了false                        。只需要在父中添加:state.sync        ,子中添加this.
emit(“update:state                      ”                       ,值)和属性 props:{ state:{ type:Boolean, default:true },即可    。

子组件中:

this.$emit("update:state",false)

父组件中

<button @click="clickBtn">开启{{mystate1}}</button> <mypop :state.sync="mystate1" ></mypop>

这样子组件中的state中的值就给父组件              。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python str.format函数(如何使用python中str.format() 方法​?)