vuejs / core

🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
https://vuejs.org/
MIT License
45.6k stars 8k forks source link

自定义指令,在setup script模式下面,在mounted钩子函数中调用当前指令所在实例的方法,提示该方法未定义(PS: 开发环境是可以正常调用) #11262

Open devie2020 opened 2 days ago

devie2020 commented 2 days ago

Vue version

3.4

Link to minimal reproduction

https://play.vuejs.org/#eNp9Uj1v1EAQ/SvDNvZJh08Iqsh3EqBEQAEIEDTbHPacs2G9u9qP4yTLFQVIUBLoqCioSKQoRZS/k1zyMzJex0mKKNIWO/Pezrw3Ow17bEy2DMg2WO4KK4wHhz6YGVeiNtp6aMDiAlpYWF1DQtSEK64KrZyH91u6CA6m0HAFUOugPJYpyjF8FKoUqhr1CADKbNFx01EfX+KZoDJzVWDm0fkt1cMtV3SGJrWrqAOJSJNnKKWGD9rK8l5C1IHSPyZWOoLprO/ZIVpiJnWVJuvD7+d7u+sfX0+O/57vfzn7+e/0/5/Tb7/Xv47WB7tdKWqYT/oJkHcKPNZGzj1SBJBvP5g1TZTStvmEopgVygQPy/u1LlFOOSOcM4qjVZgQKZ/cqMPGzDvStRBVtuO0oqFHqZwVujZCon1lvCDdnG0Mg+NsTp4/v4g5bwOOh3yxjcWnW/I7btXlOHtt0aFdImdXmJ/bCn0Pb759iSu6X4HkIkhi3wG+QZpp6DT2tCdBlST7Bi+qfR5Xh/73ndtceVRuMNUJjT8c+ZzROj29w/q13IfZo2EzWHsBHRjxWA==

Steps to reproduce

  1. 创建一个简单的页面(SFC playground)
  2. 然后创建一个vFocus指令,以及一个测试方法testFn

What is expected?

在生成环境下能够正常调用实列的方法

What is actually happening?

调用方法时提示该方法undefined

System Info

No response

Any additional comments?

No response

jh-leong commented 2 days ago

This behavior is expected.

Please use defineExpose to explicitly expose properties. For example, see this playground

linzhe141 commented 2 days ago

image