vueprovide传值对象不能取data的值

vueprovide传值对象不能取data的值,第1张

当我们需要从父组件向子组件传递数据时,会使用 props。想象一下这样的结构:有一些多层级嵌套的组件,形成了一颗巨大的组件树,而某个深层的子组件需要一个较远的祖先组件中的部分数据。在这种情况下,如果仅使用 props 则必须将其沿着组件链逐级传递下去,这会非常麻烦:

在这里插入描述

注意,虽然这里的 < Footer> 组件可能根本不关心这些 props,但为了使 < DeepChild> 能访问到它们,仍然需要定义并向下传递。如果组件链路非常长,可能会影响到更多这条路上的组件。这一问题被称为“prop 逐级透传”,显然是我们希望尽量避免的情况。

provide 和 inject 可以帮助我们解决这一问题。 一个父组件相对于其所有的后代组件,会作为依赖提供者。任何后代的组件树,无论层级有多深,都可以注入由父组件提供给整条链路的依赖。

子组件注册触发事件,父组件注册

触发子组件事件后的方法写在method里面

父组件这么写

<component-a

v-on:child-say="listenToMyBoy"></component-a>

<p>Do

you

like

me

{{childWords}}</p>

methods:

{

listenToMyBoy:

function

(somedata){

thischildWords

=

somedata

}

}

子组件component-a这么写

<button

v-on:click="onClickMe">like!</button>

methods:

{

onClickMe:

function(){

this$emit('child-say',thissomedata);

}

}

以上这篇vue

子组件向父组件传值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:vue父组件向子组件动态传值的两种方法浅谈Vue父子组件和非父子组件传值问题Vue中父组件向子组件通信的方法vue20

父组件给子组件传递数据的方法

script:

// changeName:子组件watch的 this$emit('changeName', thisprovince)的changeName,是自定义的

// lockValue:父组件的方法名

大多数父组件往子组件传值的情景都是:

父组件传值—>子组件通过props接收父组件传值—>子组件通过插值表达式{{Value}}去显示值

但是!!总会有不同的情景出现!

当我在使用element组件库时候就遇到了如下情况:

一个很简单的表单组件,但是它的数据显示是通过model属性绑定的,因而这里我们不能去使用表达式去处理了。一开始我想,那也很简单啊,你不是要绑定值吗,我在data里去写一个form值,然后再给这个form绑定上父组件传来的值不就完事了嘛。看上去是可行的,但是,事实往往不遂人意,这样是行不通的。原因是,data属性只是一个初始值,并不会实现数据绑定的效果,因此我这种妄图通过data实现父子组件值绑定的思路破产了。

下面是正解(通过watch:监听器实现):

ps:更好的方法可以通过计算属性computed去实现同样的效果,从性能上较优

欢迎大家纠错和讨论。

1、清空子组件data数据

Objectassign(this data,this optionsdata())

2、调用子组件方法

this$refsXXX方法名()

vue的自定义指令可以很好地或者说以更好的方式实现这个需求。

其中thisel还会告知自定义指令所在的元素,并在元素(每次)渲染前调用指令函数。

<script>

Vuecomponent('v-scoped',{

update:function(_scoped){

thiseltextContent=_scoped+thiseltextContent;

}

});

</script>

<style v-scoped="'body>'">

a{color:blue;}

</style>

有些功能确实需要在实际使用后才“看得到”文档中的相关阐述,死磕文档并不是好做法。当然,这要结合带着问题再回过头来看文档。先通读一遍文档,并时刻不认为“都看过了、没有需要的东西”是非常重要的。

以上就是关于vueprovide传值对象不能取data的值全部的内容,包括:vueprovide传值对象不能取data的值、vue 子组件向父组件传值方法、vue---父组件监听子组件并获取子组件的值(子组件多个值)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9694774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存