vue控制台不打印axios.get('/listDevice').then( (listDevice) => { console.log('设备状态列表') console.log(listDevice.data) } )
时间: 2024-02-27 18:59:14 浏览: 21
Vue控制台不打印axios.get('/listDevice').then()中的内容,是因为axios.get()方法返回的是一个Promise对象,而Promise对象是异步的,不会阻塞后续代码的执行,因此在控制台中不会立即打印出内容。
如果你想要在控制台中打印出axios.get()方法返回的内容,可以将console.log()语句放在then()方法中,例如:
```javascript
axios.get('/listDevice').then((listDevice) => {
console.log('设备状态列表')
console.log(listDevice.data)
}).catch((error) => {
console.log(error)
})
```
这样,在axios.get()方法成功获取到数据时,就会在控制台中打印出相应的内容。如果axios.get()方法出现错误,就会打印出错误信息。
相关问题
在vue中,如何将res打印到控制台axios.get('/api/data') .then(res=>{ }) .catch(function(error) { // 处理请求错误 console.error(error); });
在Vue中,你可以使用`console.log()`来打印`res`的值到控制台。以下是一个示例:
```javascript
axios.get('/api/data')
.then(res => {
console.log(res); // 打印整个响应对象
console.log(res.data); // 打印返回的数据
console.log(res.data[0]); // 打印集合中的第一个数据
})
.catch(function(error) {
// 处理请求错误
console.error(error);
});
```
在上面的示例中,`res`是axios返回的响应对象。你可以使用`res.data`来访问返回的数据,使用`res.data[0]`来获取集合中的第一个数据。通过将它们作为参数传递给`console.log()`函数,你可以在控制台中查看它们的值。
onBeforeRouteUpdate((to) => { console.log(to.query.id); axios.get(/hws/square/basic/facade?squareId=${to.query.id}).then(res => { console.log(res.data.result); list.splice(0) list.push(res.data.result) }) }); 改成vue3中watch监听的写法
在Vue 3中,我们可以使用`watchEffect`或`watch`函数来监听路由变化。这里是使用`watch`函数的示例代码:
```javascript
import { watch } from 'vue'
export default {
setup() {
const list = reactive([])
watch(
() => $route.query.id,
(id) => {
axios.get(`/hws/square/basic/facade?squareId=${id}`).then(res => {
list.splice(0)
list.push(res.data.result)
})
},
{ immediate: true }
)
return {
list
}
}
}
```
在`setup`函数中,我们使用`watch`函数来监听`$route.query.id`的变化。`$route`是Vue Router提供的一个全局变量,用于访问当前路由信息。当`$route.query.id`发生变化时,`watch`函数的回调函数会被触发,我们在回调函数中发送请求并更新`list`数组。`immediate`选项表示在组件创建时立即执行一次回调函数,以便初始化数据。
需要注意的是,使用`watch`函数需要导入Vue的`watch`函数。同时,在Vue 3中,我们还需要导入`reactive`函数来创建响应式数据对象。