Jor*_*dan 0 javascript vue.js axios
axios 获取请求后,Vue.js 中的 HTML 未更新。HTML是:
<span @click="tryResponse">
Data_object: {{ data_object }} <br>
Data_object.serial: {{ data_object.serial }} <br>
</span>
Run Code Online (Sandbox Code Playgroud)
数据:
data(){
return{
data_object: {},
}
},
Run Code Online (Sandbox Code Playgroud)
方法:
methods: {
tryResponse() {
axios.get('http://127.0.0.1:8000/source/groups/15').then((response) => {
this.data_object.serial = response.data});
}
Run Code Online (Sandbox Code Playgroud)
这一切都发生在一个名为 App.vue 的文件中(如果这很重要)。
如果我查看 chrome 开发工具 Vue,我可以看到数据对象确实更新并填充了正确的信息。但它不会在页面上的 html 中更新。
编辑:如果我这样做,一切正常:
this.data_object = response.data
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时问题就来了:
this.data_object.serial = response.data
Run Code Online (Sandbox Code Playgroud)
小智 5
该属性serial从未在 vue 实例上声明,因此不是响应式的。
你可以使用Vue.set(this.data_object, "serial", response.data)它向 vue 注册它,这样它就会向这个变量添加观察者,它会变成反应性的
或者
在数据对象上声明串行属性
data(){
return{
data_object: {
serial: ""
},
}
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |