刚开始学vue的时候没有使用脚手架,现在用脚手架写法有点不同,今天遇到的问题是使用豆瓣api异步加载数据的时候,会一直在命令行上报错,基本上错误都是xxx 未定义。
例子
<template>
<div v-if="moviesData">
<!-- 正在上映的电影-北京 -->
<h1>{{ moviesData.title }}</h1>
</div>
</template>
<script>
import jsonp from 'jsonp' // 一个jsonp插件 npm install jsonp --save
export default {
data(){
return {
moviesData: null // 如果不事先给一个默认值的data,就会报 xxx is not define
}
},
// 生命周期函数
created(){
// 发送请求
jsonp('https://api.douban.com/v2/movie/in_theaters', null, (err, data)=>{
this.moviesData = data;
});
}
}
</script>
在发送异步请求的时候要注意两个点:
- 数据的初始值,我这里是给
null
作为初始值。 - 判断数据是否存在,在html中,我用
v-if
判断moviesData
是否存在,可以确保只有在数据存在的时候才会渲染。