javascript - 来自另一个 js 文件的 Vuejs 变量未更新
问题描述
我有另一个 js 文件,它存储像用户这样的数据。
export var selectedUser = null;
(变量多次变化)
但是,当我尝试从 App.vue 文件访问该数据时,它说它没有改变。
这是我导入数据的方式:
import * as config from "./config"
解决方案
您可以通过创建一个函数来设置从 JavaScript 文件中选择的用户并在用户选择时返回回调函数并在 vuejs 组件中侦听回调以更新 selectedUser 变量(该变量将在 vuejs 组件中),从而使其具有反应性
组件代码:
<template>
<div>
user {{ selectedUser }}
<button @click="update()"> Update user </button>
</div>
</template>
<script>
import getUserData from './GetUser';
import updateUser from './UpdateUser';
import {ref} from 'vue'
export default {
name: 'HelloWorld',
setup(){
let selectedUser = ref('ahmed');
const userData = getUserData();
function update(){
updateUser(selectedUser, (theNewValue) => {
// to be reactive
selectedUser.value = theNewValue;
});
}
return {...userData, update, selectedUser};
}
}
用户文件:
export default function updateUser(selectedUser, updated){
selectedUser = 'new value';
alert(`User Updated Successfully ${selectedUser}`);
// pass new value to get it from vuejs component
updated(selectedUser)
}
推荐阅读
- javascript - 导航 401 Http 失败
- css - 样式化组件中的驼峰式 CSS 或常规 React 的情感?
- python - 使用python在telnet连接的交换机上运行命令
- python - 如何在 Python 中将数据帧转换为字符串
- maven - 解组构建配置 deploy.yaml 失败:
- python - “如果”函数从文本文件导入后无法识别变量的值
- javascript - Axios 发布和上传图像在 IOS/IPhone (HTTP 400) 上的 Safari 不起作用
- r - 如何在蒙特卡洛模拟中添加均值和标准差线?
- protractor - Protractor 5.4.2 和 Webdriver 12.1.6 以及 chromedrivers 不支持 chrome 76
- amazon-web-services - 嵌套数组(属性)的分页