繁体   English   中英

Vue.js 带有外部对象的计算函数

[英]Vue.js computed functions with external objects

是否可以将 Vue 的computed属性与外部 object 一起使用?

为了说明我的意思,这是我想象的代码示例:

<!-- Vue file -->

<template>
    <div>{{data.auth}}</div>
</template>

<script>
import {_data} form "./data"

export default {
    computed: {
        data() { return _data }
    }
}
</script>

<!-- data.js file -->

let _auth = "123";

export let _data = {
   auth: _auth
}

setTimeOut(() => _auth = "456", 2000)

我对这段代码的期望是 HTML 文档在 2000 毫秒后从“123”变为“456”。

但据我所知,这是行不通的。

使用 Vue 3,您可以导入ref以跟踪更改:

import { ref } from 'vue'

const _auth = ref('123')

export const _data = {
    auth: _auth
}

setTimeout(() => {
    _auth.value = '456'
}, 2000)

工作片段:

 const _auth = Vue.ref('123') const _data = { auth: _auth } setTimeout(() => { _auth.value = '456' }, 2000) Vue.createApp({ data() { return { data: _data } } }).mount('#app')
 <script src="https://unpkg.com/vue@next"></script> <div id="app"> <div>{{ data.auth }}</div> </div>

使用Observables ,您可以使数据反应

import Vue from "vue";

let _auth = "123";
export let _data = Vue.observable({
  auth: _auth
});

setTimeout(() => {
  _data.auth = "456";
}, 2000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM