1.this.$http.get()方法
2.this.$http.post()方法
3.this.$http.jsonp()方法
(vue仿百度搜索)
在输入框中输入a, 然后在百度f12 ==> network ==> 复制js https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&json=1&p=3&sid=1440_25548_21098_20719&req=2&csor=1&cb=jQuery1102032174500415831986_1516022014624&_=1516022014630 整理下 https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jshow
HTML
<div id="app"> <!-- v-model绑定数据, @keyup事件 --> <input type="text" v-model="keyword" @keyup="get($event)" @keydown.down.prevent="changeDown()" @keydown.up.prevent="changeUp()"> <ul> <!-- v-for循环数据, v-bind:class="{gray:index==now}, 当前下标为true时显示灰色" --> <li v-for="(value, index) in myData" v-bind:class="{gray:index==now}">{{value}}</li> </ul> <!-- 判断length当数据为空时 --> <p v-show="myData.length==0">暂无数据...</p> </div>
VUE.JS
new Vue({ el: "#app", data: { myData:[], // 循环数据 keyword:"", // 输入文本值 now: -1 // 索引 }, methods:{ // jshow({q:"a",p:false,s:["爱奇艺","阿里云","阿里巴巴","安居客","阿里巴巴批发网","爱情公寓","安卓模拟器","acfun","apple","暗黑3"]}); get: function(ev){ if(ev.keyCode == 38 || ev.keyCode == 40){ return false; } if(ev.keyCode == 13){ window.open("https://www.baidu.com/s?wd=" + this.keyword); } // jsonp获取百度的搜索关键字 this.$http.jsonp("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=" + this.keyword + "",{ jsonp:"cb" // callback函数名 }).then(function(res){ this.myData = res.data.s; // 存入搜索数据 }, function(){ console.log(res.status) }) }, // 键盘下拉事件 changeDown: function(){ this.now++; if(this.now == this.myData.length){ this.now = -1; } this.keyword = this.myData[this.now]; // 赋值是文本框 }, // 键盘上拉事件 changeUp: function(){ this.now--; if(this.now == -1){ this.now = this.myData.length-1; } this.keyword = this.myData[this.now]; // 赋值是文本框 }, } })
原文地址:https://www.cnblogs.com/alantao/p/8290247.html
时间: 2024-11-06 11:54:52