Vue.js Vue从方法访问数据

Vue.js Vue从方法访问数据,vue.js,Vue.js,我有以下代码: 导出默认值{ 名称:“应用程序”, 数据(){ 返回{ IP地址:“”, 客户:“8.8.8.8”, 同级:“, }; }, 组成部分:{ 虚拟主义者, VsaItem, VsaHeading, VsaContent, }, 方法:{ 跟踪路由(){ var pl=此; log(“我应该跟踪ip地址:”,this.ipAddress); var hostname={ipAddr:this.ipAddress}; axios({ 方法:“张贴”, url:“http://127.0

我有以下代码:

导出默认值{
名称:“应用程序”,
数据(){
返回{
IP地址:“”,
客户:“8.8.8.8”,
同级:“,
};
},
组成部分:{
虚拟主义者,
VsaItem,
VsaHeading,
VsaContent,
},
方法:{
跟踪路由(){
var pl=此;
log(“我应该跟踪ip地址:”,this.ipAddress);
var hostname={ipAddr:this.ipAddress};
axios({
方法:“张贴”,
url:“http://127.0.0.1:3001/trace",
数据:主机名,
标题:{“内容类型”:“文本/普通”},
})
。然后((结果)=>{
pl.client=“9.9.9.9”;
console.log(result.data.ipAddr);
})
.catch((错误)=>{
console.log(错误);
});
},
},
};
client
变量在
data()
定义中设置为“8.8.8.8”,但当我稍后尝试使用
pl.client=“9.9.9.9”
更新变量时,它实际上不会更改HTML中的变量

还有什么需要做的,使这个变量的反应

以下是HTML:


追踪路线
痕迹
{{client}}
{{peer}}

这一行就是问题所在

pl.client = "9.9.9.9";
您正在进行的更新不是被动的,它不会触发在html中重新呈现您的值

更新单个对象值时,需要使用Vue.set

this.$set(this.pl, 'client', "9.9.9.9" }
如果需要一次更新多个属性,可以使用Object.assign: 在本例中,假设您的客户机是一个包含3个属性的对象,您希望更新其中的一些属性,然后使用当前属性重新创建对象,并更新要更新的属性

 this.state.client = Object.assign({}, this.client, updatedObject)
让我知道它是否有效,同时我可以建议您阅读更多有关vuejs中反应性的信息,这将偶尔为您节省一些时间:)


这条线就是问题所在

pl.client = "9.9.9.9";
您正在进行的更新不是被动的,它不会触发在html中重新呈现您的值

更新单个对象值时,需要使用Vue.set

this.$set(this.pl, 'client', "9.9.9.9" }
如果需要一次更新多个属性,可以使用Object.assign: 在本例中,假设您的客户机是一个包含3个属性的对象,您希望更新其中的一些属性,然后使用当前属性重新创建对象,并更新要更新的属性

 this.state.client = Object.assign({}, this.client, updatedObject)
让我知道它是否有效,同时我可以建议您阅读更多有关vuejs中反应性的信息,这将偶尔为您节省一些时间:)



您是否查看了Vue开发工具此变量是如何变化的?您如何调用该方法?是否可以添加用于呈现客户端变量的html?是否执行此语句
console.log(“我应该跟踪ip地址:”,this.ipAddress)给出输出?Does
console.log(result.data.ipAddr)工作?我的意思是您的请求没有问题?您是否查看了Vue开发工具该变量如何更改?您如何调用该方法?您可以添加用于呈现客户端变量的html吗?执行以下语句
console.log(“我应该跟踪ip地址:”,this.ipAddress)给出输出?Does
console.log(result.data.ipAddr)工作?我的意思是你的请求可以吗?谢谢,我尝试了这个,最初得到了一个关于pl声明的错误,但从未在构建中使用,所以我将它调整为这个。$set(pl,“client”,“9.9.9”}在html中的变量未更新的情况下也会得到相同的结果。为什么需要声明pl=this?不能这样做。client=myNewValue?据我所知,数据中的客户端属性不是嵌套的或任何东西。我最初尝试过这个。client=newValue,但也不起作用,基于其他一些东西添加了pl=this我在一篇帖子中看到了,但不认为这是必要的。你能把你承诺的结果记录下来吗,也许会出错?对于调试器,请添加一个观察者,记录客户端的值,让我看看。请给我看看vsa标题的模板。玩了一会儿之后,我注意到,如果我只是把html变量{client}在头标记中,它更新得很好。似乎当尝试更新标记中的变量时,问题就出在这里。谢谢,我尝试了这一点,最初得到了一个关于pl被声明但从未在构建中使用的错误,所以我将其调整为这个。$set(pl,“client”,“9.9.9.9”}在html中的变量未更新的情况下也会得到相同的结果。为什么需要声明pl=this?不能这样做。client=myNewValue?据我所知,数据中的客户端属性不是嵌套的或任何东西。我最初尝试过这个。client=newValue,但也不起作用,基于其他一些东西添加了pl=this我在一篇帖子中看到了,但不认为这是必要的。你能把你承诺的结果记录下来吗,也许会出错?对于调试器,请添加一个观察者,记录客户端的值,让我看看。请给我看看vsa标题的模板。玩了一会儿之后,我注意到,如果我只是把html变量{client}在header标记中,它更新得很好。似乎当试图更新标记中的变量时,问题就出在这里。