首页 > 编程知识 正文

vue自定义组件,vue组件之间传值

时间:2023-05-04 11:09:39 阅读:106562 作者:4811

vue中不同组件的通信方式如下

1 .父子组件,通过prop

2 .从非父子组件、vuex或根vue转载

通常是上述两种情况,但也有特殊情况,例如孙子的组件或更深层次的组件通信

1 .下一个是a.vue

templatedivclass=' test ' son prop=' data '/son/div/template2.下面是son.vue

templatedivgrandsonprop=' data '/grandson/div/templatescriptexportdefault { name 3360 ' son },props 3360 [ ' data ] 阶层少的情况下也没有问题,但阶层多了就可怕了

有人问,为什么不用vuex,简单省事吗?为此引入vuex会降低代码的性价比,项目本身经常不需要使用vuex

那么在这种情况下,provide/inject就会登场

1.provide相当于扩展版的父组件prop

2.inject相当于增强版次组件的props

因为这两者可以与父组件和子组件、孙组件、曾孙.组件数据进行交换。 这意味着,无论prop父子组件数据的交互如何,只要prop是声明的更高级别provide,底层就可以通过inject听到provide中的数据

1 .父组件如下

templatedivclass=' test ' son prop=' data '/son/div/templatescriptexportdefault { name 3360 ' test },provide3360{

template div { { name }/div/templatescriptexportdefault { name : ' grandson ',inject: [name]}/script在此

显然也有坏处。 如果可以在任意级别访问,则数据跟踪将变得困难,并且不知道在哪个级别声明了它,或者在哪个级别或多个级别使用了它。 因此,此属性通常不建议用于启用vuex的vuex,也不建议用于禁用的多播,但在开发组件库时与vuex无关,并且不知道用户使用环境时可以很好地使用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。