Vue 3: 如何在组件函数中获取和修改设置的变量
P粉463840170
P粉463840170 2023-08-24 19:32:40
[Vue.js讨论组]
<p>考虑以下使用Vue 3中的组合API的简单示例。我想在组件的函数中使用<code>test</code>的实例。</p> <pre class="brush:php;toolbar:false;">&lt;script&gt; import { defineComponent, ref, onMounted } from 'vue' export default defineComponent({ name: 'Test', setup(){ let test = ref() onMounted(() =&gt; { doSomething() }) return{ test, doSomething } } }) function doSomething(){ console.log(test) //&lt;-- undefined console.log(this.test) //&lt;-- undefined } &lt;/script&gt;</pre> <p>如何在<code>doSomething()</code>内部访问<code>test</code>?我的理解是<code>setup()</code>返回的任何内容应该在整个组件中都可用,就像选项API中的<code>data()</code>属性一样。</p>
P粉463840170
P粉463840170

全部回复(1)
P粉506963842

你必须将ref作为参数传递

<script>
import { defineComponent, ref, onMounted } from 'vue'

export default defineComponent({
  name: 'Test',
  setup () {
    let test = ref(null)

    onMounted(() => {
      doSomething(test.value)
    })

    return {
      test,
      doSomething
    }
  }
})

function doSomething (param) {
  console.log(param); // null
}
</script>

另一种方法:

// functions.js
import { ref } from 'vue'
export let test = ref(null)
// vue-file
<script>
import { defineComponent, ref, onMounted } from 'vue'
import { test } from '../utils/functions.js'

export default defineComponent({
  name: 'Test',
  setup () {

    onMounted(() => {
      doSomething(test)
    })

    return {
      test,
      doSomething
    }
  }
})

function doSomething (param) {
  console.log(test.value); // <-- instant access
  console.log(param.value); // <-- import via parameter
}
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号