之前用的这种方式:
const { ctx } = getCurrentInstance();,
我看说生产环境下的 ctx 将访问不到,后来改成
const { proxy } = getCurrentInstance() as any
这种方式获取,如图:
但是我取不到里面的内容,求解正确写法
之前用的这种方式:
const { ctx } = getCurrentInstance();,
我看说生产环境下的 ctx 将访问不到,后来改成
const { proxy } = getCurrentInstance() as any
这种方式获取,如图:
但是我取不到里面的内容,求解正确写法
用ref呗 获取组件的实例的话
const { proxy } = getCurrentInstance() 这个里面的proxy相当于vue2的this 我公司开发的vue3项目都是这样写的 直接当this使用
3 回答4.2k 阅读✓ 已解决
6 回答1.9k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
使用
$refs
就可以了:组件设置ref值
父组件调用子组件的时候设置ref值。
组件实例获取
设置完成后,vue3可以通过ref方法获取。
这边变量的名字需要和上面ref的一致。如何直接打印childRef,这个时候会是:
因为页面组件还没有挂载完成,所以需要在挂载完成之后才能正常使用。
子组件内设置对外公开的变量
上面第2步获取到子组件实例后,无法使用子组件内的方法,因为使用 script setup 的组件默认是关闭的,如果需要公开,需要使用 defineExpose 编译器宏。
这样就可以调用到子组件的方法了。
完整代码:
父组件
子组件