这篇文章将为大家详细讲解有关Vue2如何实现provide inject传递响应式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. vue2 中的常规写法// 父级组件提供 '
这篇文章将为大家详细讲解有关Vue2如何实现provide inject传递响应式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
// 父级组件提供 'foo'var Provider = {data(){ return { foo: 'bar' }} provide: { fooProvide: this.fooFn // 传递一个引用类型函数过去 }, methods:{ fooFn() { return this.foo } }}var Child = { inject: ['fooProvide'], computed:{ fooComputed(){ return this.fooProvide() // 因为传递过来是个引用类型的函数 } } created () { console.log(this.fooComputed) } // ...}
// 父级组件提供 'foo'var Provider = {data(){ return { foo: 'bar', other:'...' }} provide: { app: this// 传递整个this过去 }, mounted(){ const that = this setTimeout(()=>{ that.foo = '改变值' },4000) }}var Child = { inject: ['app'], created () { console.log(this.app.foo) // this.app 下面都是响应式的,因为都是同一实例下的引用 } // ...}
Provide 方式:
1. @Provide() foo = 'foo'
2. @Provide('bar') baz = 'bar'
Inject 方式:
1. @Inject() foo: string
2. @Inject('bar') bar: string
3. @Inject(s) baz: string
示例:
// 父级组件提供 'fooProvide'@Provide('fooProvide') // 随意起名,传递跟接收一样就行.但一般保持跟下面变量一样fooProvide = this.refreshNumFn // 变量接收一下要传递的值refreshNumFn() { return this.refreshNum}// 子组件接收@Inject('fooProvide') fooProvide: anyget valueA(): any { return this.fooProvide() }mounted(){ console.log(this.valueA) // ...}
Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。
关于“vue2如何实现provide inject传递响应式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: vue2如何实现provide inject传递响应式
本文链接: https://lsjlt.com/news/277562.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0