1,在项目中我们会遇到 点击搜索 input框 搜索我们需要的信息 这个例子是我们照着视频做的
2,在input框中我们需要v-model=“message”数据绑定 后在data中定义一个相对性的
data(){
Return {
Message:””,初始值为空
}
},
Watch:{
Message(newval){
console.log(newval)在watch中就可以时时检测到Message发生变法的值
}
}4,在浏览器中我们可以看到在input中输入值我们就可以打印出来
5,之后我们就可以在watch中发起请求
6,如果请求成功后我们就把成功的数组等于我们之前在data中 定义后要循坏的数组 movieList:[ ]
7,赋值成功 我们就可以用v-for在页面中渲染啦
8,在页面渲染成功后我们就可以浏览器中效果啦, 在input 输入关键字就可以搜索出我们想要的数据来
9,其实到这里的话我们想要的效果有啦,还差一点什么呢我们请求是在watch中请求的只要我们在input框输入关键字,就会不停的出发wacth中请求,不停的请求数据,那我们应该怎么做呢(打开百度搜索axios的终止多次请求)
10,照着人家的文档写,先将方法拷贝过来
cancelRequest(){
if(typeof this.source ==='function'){
this.source('终止请求')
} },只要触发this.source方法就会停止请求终止上一次的请求
11,之后在请求的第二个参数在拷贝一个参数
cancelToken: new axios.CancelToken(function executor(c) { that.source = c; })12,拷贝之后我们把new换成一下 this.
this.tledownaxios.CancelToken(function executor(c) { that.source = c; }).catch((err) => { if (axios.isCancel(err)) { console.log('Rquest canceled', err.message);
//请求如果被取消 这里是返回取消的message
} else { //handle error console.log(err);
} })放到请求一开始的位置13,将(err)=》{}改成箭头函数就行啦
最后我们调用这个方法就行啦
This.cancelRequest()
14,好啦我们可以去浏览器中看看效果啦一一一不行?
我们在input款输入多个字 他没有终止请求
15,看报错信息that is defind
看代码发现可能this的只想问题
在请求最上面或者改成箭头函数都可以
Var that=this
16,还是不能终止请求
17,最后对照文档我们之前不是把new改成啦this吗
看来一定要加这个new好吧 我么加上吧
18,ok 现在 请求就是最后一次的
19,输入正确的关键字ok啦 我们只有最后一次请求到数据
















