下面是一个场景,我有一个组件,在script标记中调用一个操作
<script> if (something is true) { await store.doSomething() } </script>
组件无法安装。当我使用onMounted挂钩时,它似乎起作用了。我是Vue的初学者,但我的问题是,当我不使用钩子时,实际上会发生什么?当进行异步调用时,是否总是需要使用钩子?把它放在里面onMounted让它工作,虽然后来遇到了其他测试失败。
wxclj1h51#
1.看看您现在编写的内容,您应该拥有如下所示的Options API
<script> export default { mounted() { // your code }, setup() { // can also use setup here } } </script>
1.使用合成API(注意setup)
setup
<script setup> onMounted(() => { // your code }) </script>
在2.中,如果您不使用onMounted,它将在setup生命周期内运行,如下所示。当进行异步调用时,是否总是需要使用钩子?不是真的,但同时这取决于你想让它什么时候/如何运行。最初从运行到mounted开始是的,总体上更容易和更安全地理解。特别是因为setup在重新安装时不会重新运行,所以可能会非常混乱。它还取决于something is true到底是什么,关于生命周期+状态。皮尼亚和维特会有自己的事情要考虑。我建议在继续之前阅读文档并获得初步的理解。
2.
onMounted
mounted
something is true
tf7tbtn22#
在Vue.js中,onMounted钩子是一个生命周期钩子,在组件挂载到DOM之后调用。它是执行需要完全呈现组件的任务的好地方,例如进行异步调用或与DOM交互。在脚本标记中使用await关键字时,它不在函数的上下文中,因此无法使用await表达式。这就是当您尝试在onMounted挂接外部使用await时遇到错误的原因。当在Vue中进行异步调用时,使用生命周期钩子或方法通常是一个好主意,因为这允许您以结构化的方式处理调用的结果,并避免潜在的错误。然而,并不总是需要使用钩子,您可以使用其他技术,如事件处理程序或计算属性,在组件中执行异步任务。如果您仍然无法理解如何在Vue中使用异步调用,您可能需要参考Vue.js文档,或者从在线资源或导师那里寻求额外的指导。
2条答案
按热度按时间wxclj1h51#
1.看看您现在编写的内容,您应该拥有如下所示的Options API
1.使用合成API(注意
setup
)在
2.
中,如果您不使用onMounted
,它将在setup
生命周期内运行,如下所示。当进行异步调用时,是否总是需要使用钩子?
不是真的,但同时这取决于你想让它什么时候/如何运行。最初从运行到
mounted
开始是的,总体上更容易和更安全地理解。特别是因为
setup
在重新安装时不会重新运行,所以可能会非常混乱。它还取决于
something is true
到底是什么,关于生命周期+状态。皮尼亚和维特会有自己的事情要考虑。
我建议在继续之前阅读文档并获得初步的理解。
tf7tbtn22#
在Vue.js中,onMounted钩子是一个生命周期钩子,在组件挂载到DOM之后调用。它是执行需要完全呈现组件的任务的好地方,例如进行异步调用或与DOM交互。
在脚本标记中使用await关键字时,它不在函数的上下文中,因此无法使用await表达式。这就是当您尝试在onMounted挂接外部使用await时遇到错误的原因。
当在Vue中进行异步调用时,使用生命周期钩子或方法通常是一个好主意,因为这允许您以结构化的方式处理调用的结果,并避免潜在的错误。然而,并不总是需要使用钩子,您可以使用其他技术,如事件处理程序或计算属性,在组件中执行异步任务。
如果您仍然无法理解如何在Vue中使用异步调用,您可能需要参考Vue.js文档,或者从在线资源或导师那里寻求额外的指导。