三种数据交互形式:get post jsonp
一、get请求
1.引入 vue.js 和 vue-resource.js , 准备一个按钮
<input type="button" value="按钮" @click="get()"/> //点击按钮请求数据函数get()
2.准备一个txt文件
welcome vue
3.编写js代码
<script>
window.onload=function(){
new Vue({
el:'body', //主体为body,有套div时,此处为选择器
methods:{
get:function(){
this.$http.get('a.txt').then(function(res){
alert(res.data) //成功后,弹出请求数据
},function(res){
alert(res.status) //失败后,弹出请求状态码
})
}
}
})
}
</script>
二、post请求
1.引入 vue.js 和 vue-resource.js , 准备一个按钮
<input type="button" value="按钮" @click="get()"/>
2.准备一个php文件
<?php $a=$_POST['a']; $b=$_POST['b']; echo $a-$b; //回显数据相减结果 ?>
3.编写js代码
<script>
window.onload=function(){
new Vue({
el:'body',
methods:{
get:function(){
this.$http.post('post.php',{ //发送实参数据,进行运算(需要放在服务器环境)
a:1,
b:2
},{
emulateJSON:true //post的标识
}).then(function(res){
alert(res.data) //成功后弹出数据结果
},function(res){
alert(res.status) //失败后弹出状态码
})
}
}
})
}
</script>
三、jsonp——百度下拉列表实例
1.引入 vue.js 和 vue-resource.js , 准备基础样式代码
1 <style>
2 .gray{
3 background: #ccc; //按上下键时显示的文字背景颜色
4 }
5 </style>
6
7 <div id="box">
8 <input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()"/>
//按键传键值 get($event) 函数 //按向下键时 changeDown() 函数 //按向上键时 changeUp() 函数:阻止默认行为输入浮上移
9 <ul>
10 <li v-for="value in myData" :class="{gray:$index==now}">{{value}}</li>
//循环myData数据 绑定样式同时添加条件,下标值此时为几时,背景为灰
11 </ul>
12 <p v-show="myData.length==0">暂无数据...</p> //当数据长度为0时,显示暂无数据...
13 </div>
2、编写js代码
1 <script>
2 window.onload=function(){
3 new Vue({
4 el:'#box',
5 data:{
6 myData:[],
7 t1:'',
8 now:-1
9 },
10 methods:{
11 get:function(ev){ //接收事件
12 if(ev.keyCode==38||ev.keyCode==40)return; //如果事件为向上向下则return不请求数据
13 if(ev.keyCode==13){ //如果事件为回车
14 window.open('https://www.baidu.com/s?wd='+this.t1); //则打开百度对应t1值页面
15 this.t1=''; //清空输入框
16 }
17 this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
18 wd:this.t1 //截取的搜索接口,发送数据为输入框此时输入的数据
19 },{
20 jsonp:'cb' //callback名字,默认为'callback'
21 }).then(function(res){
22 this.myData=res.data.s //将数据的s值赋给 myData
23 },function(res){
24 alert(res.status)
25 })
26 },
27 changeDown:function(){ //按下键时的函数
28 this.now++; //now下标值++
29 if(this.now==this.myData.length)this.now=-1; //如果下标值为数据长度,即最后一个时,为-1,跳到第一个
30 this.t1=this.myData[this.now] //输入框值为此时数据中选中的值
31 },
32 changeUp:function(){ //按上键时的函数
33 this.now--; //now下标值--
34 if(this.now==-2)this.now=this.myData.length-1 //如果下标值为-2,此时now=总长度-1,跳到最后一个
35 this.t1=this.myData[this.now] //输入框值为此时数据中选中的值
36 }
37 }
38 })
39 }
40 </script>
3、类似百度搜索了。。。
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。