Vue1.0学习总结(2)———交互(vue-resoucre的使用)

vue1.0的交互:
angular:$http (ajax对象)
vue想做交互:必须引入另一个库vue-resoucre(vue本身不支持交互)

方法:在没有使用vue-cli的时候要放在服务区环境下,如放入php的环境中
格式:
  this.$http.get(‘/someUrl‘, [data], [options]).then(successCallback, errorCallback);

  this.$http.post(‘/someUrl‘, [data], [options]).then(successCallback, errorCallback);

this.$http.get方式:
1)获取一个普通的文本数据:
methods:{
  get:function(){
    this.$http.get(‘shuju.txt‘).then(function(res){
      console.log(res.data);
    },function(res){
      console.log(res.data);
    });
  }
}
2)给服务器发送数据(平时用的是最多的)
get.php中的代码:
<?php
  $a=$_GET[‘a‘];
  $b=$_GET[‘b‘];
  echo $a+$b;
?>
Vue实例中的代码:
get:function(){
  this.$http.get(‘data/get.php‘,{
    a:1,
    b:20
  }).then(function(res){
    console.log(res.data);
  },function(res){
    console.log(res.data);
  });
}

this.$http.post方式:(推荐使用post方法)
post.php中的代码:
<?php
  $a=$_POST[‘a‘];
  $b=$_POST[‘b‘];
  echo $a+$b;
?>
Vue实例中的代码:
methods:{
  get:function(){
    this.$http.post(‘data/post.php‘,{
      a:1,
      b:20
    },{
      emulateJSON:true
    }).then(function(res){
      console.log(res.data);
    },function(res){
      console.log(res.data);
    });
  }
}

3) jsonp的方式:
获取接口1:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jshow
get:function(){
  this.$http.jsonp(‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘,{
    wd:‘a‘
  },{
    jsonp:‘cb‘ //callback的名字,默认名字为callback
  }).then(function(res){
    console.log(res.data.s);
  },function(res){
    console.log(res.data);
  });
}
获取接口2:https://sug.so.360.cn/suggest?callback=suggest_so&word=a
get:function(){
  this.$http.jsonp(‘https://sug.so.360.cn/suggest‘,{
    wd:‘a‘
  }).then(function(res){
    alert(res.data.s)
    console.log(res.data.s);
  },function(res){
    console.log(res.data);
  });
}
回车接口:https://www.baidu.com/s?wd=
回车打开:window.open(‘https://www.baidu.com/s?wd=‘+this.t1);

jsonp接口应用示例:

 1 <!DOCTYPE html>
 2                 <html lang="en">
 3                 <head>
 4                   <meta charset="UTF-8">
 5                   <title></title>
 6                   <link rel="stylesheet" href="css/bootstrap.min.css">
 7                 </head>
 8                 <body>
 9                     <div class="container" style="margin-top: 80px;">
10                         <div class="form-group searchdown">
11                                 <label for="downlists">下拉框:</label>
12                                 <input type="text" id="" class="form-control"  v-model="t1" @keyup="get($event)" @keydown.down="changedown()" @keydown.up.prevent="changeup()">
13                                 <ul class="list-group">
14                                     <li v-for="value in myData" :class="{grey:$index==now}" class="list-group-item">
15                                         {{value}}
16                                     </li>
17                                 </ul>
18                                 <p v-show="myData.length==0">暂无数据........</p>
19                         </div>
20                     </div>
21
22                     <script type="text/javascript" src="js/jquery.min.js"></script>
23                     <script type="text/javascript" src="js/bootstrap.min.js"></script>
24                     <script type="text/javascript" src="js/vue-resource.js"></script>
25                     <script type="text/javascript">
26                         window.onload=function(){
27                             new Vue({
28                                 el:‘body‘,
29                                 data:{
30                                     myData:[],
31                                     t1:‘‘,
32                                     now:-1,
33                                     success:[],
34                                     lost:[],
35                                 },
36                                 methods:{
37                                     get:function(ev){
38                                         if (ev.keyCode==38 || ev.keyCode==40) {
39                                             return;//return不继续执行下面的函数
40                                         }
41                                         if (ev.keyCode==13) {
42                                             window.open(‘https://www.baidu.com/s?wd=‘+this.t1);
43                                             this.t1=‘‘;
44                                         }
45                                         this.$http.jsonp(‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘,{
46                                             wd:this.t1
47                                         },{
48                                             jsonp:‘cb‘
49                                         }).then(function(res){
50                                             this.myData=res.data.s;
51                                         },function(){
52                                             console.log(res.data);
53                                         });
54                                     },
55                                     changedown:function(){
56                                         this.now++;
57                                         if (this.now==this.myData.length) {
58                                             this.now=-1;
59                                         }
60                                         this.t1=this.myData[this.now];
61                                     },
62                                     changeup:function(){
63                                         this.now--;
64                                         if (this.now==-2) {
65                                             this.now=this.myData.length-1;
66                                         }
67                                         this.t1=this.myData[this.now];
68                                     }
69                                 }
70                             });
71                         };
72                     </script>
73                 </body>
74                 </html>
时间: 2024-10-23 17:15:05

Vue1.0学习总结(2)———交互(vue-resoucre的使用)的相关文章

Vue1.0学习总结(5)———vue-router的使用

vue-router的使用:vue->适合在单页面的应用,即适合SPA开发 vue-resource: 交互 vue-router: 路由 下载:因为这里用的是vue1.0,所以下载vue-router0.7.13版本,后面会继续讲解vue2.0 查看版本信息:bower info 包名 下载:bower install vue-router 下面讲解vue1.0中vue-router使用的步骤: 主页:/home 新闻:/news html代码: <li><a v-link=&q

Vue1.0学习总结(4)———Vue1.0自定义组件、Vue1.0组件之间的通信

Vue自定义组件: 组件:就是一个大的对象:new Vue({})就是一个组件定义一个组件:1.全局组件: <div id="box"> <aaa></aaa> </div> var Aaa=Vue.extend({ template:'<h3>我是一个标题</h3>' }); Vue.component('aaa',Aaa); a)给自定义的组件添加数据: data必须是函数的形式,函数必须返回一个对象(json

vue1.0学习总结

前言 使用vue已经有三.四个月了,但是只是学着使用了一些基本方法.因为现在的前端框架越来越多(Angular,React...),但是我相信万变不离其宗,很多用法框架之间还是想通的,所以借总结的vue的机会深入了解vue到每个细节,以后能更加熟练地使用vue,有机会也能在别的框架中体会相通的思想. 一.基本&&重点介绍 兼容性:vue不支持IE8及以下版本,因为IE8不支持vue所使用的ECMAScript5语法 数据驱动视图:不需要操作DOM 支持双向绑定:但是默认为数据从父组件到子组

vue1.0学习(持续更新)

vue 一片html代码配合上json,在new出来vue实例 Demo:1 数据双向绑定(v-model="message",{{message}}) <div id="box"> <input type='text' v-model="message"> <p>{{message}}</p> </div> var c=new Vue({ el:'#box',    //el为挂载点,

vue1.0 -vue 2.0

vue.js 发表于 2017-01-15   | vue基础 vue1.0 vue1.0对象的属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 var vm = new Vue({ el:'#box', //容器 data:{ //数据 msg:"data", a:1 }, methods:{ //普通方法 }, computed:{ //计算属性(属性b随着其return

基于win7在GIT中设置VUE1.0开发环境

最近项目要使用VUE.JS作为前端框架,进行前后端的分离.虽然要使用2.0进行开发,但是要先基于1.0进行学习,逐步进行理解与开发. 由于没搞清楚vue2.0和vue1.0环境中部分内容的关系,所以在写程序时碰到好多坑,下述是论述的1.0的配置.现在刚初学几天,大概理解到在使用vue-vuerouter-webpack时一定要注意版本保持一致,可通过修改项目中的package.json文件,重新安装对应软件后得到对应的开发环境,希望初学者警惕. 我现在的开发环境为windows7-64bit 首

vue1.0中$index一直报错的解决办法

原文链接:https://www.cnblogs.com/liqiong-web/p/8144925.html 看学习视频,因为年份比较早了,其实vue早已迭代到vue2.0了,遇到一些问题: v-for遍历数组,获取索引 注意:在2.0版是1~10中,$index已废除,索引 (item,index). 如下为vue1.0的写法,$index浏览器会报错 1 <ul v-if="seller.supports" class="supports"> 2

Vue1.0用法详解

Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 4 5 6 7 8 9 10 11 <div id="app"> {{message}} <input v-model="message"> </div> new Vue({ ele: '#app', data: { message:

vue1.0 与 Vue2.0的一些区别 及用法

1.Vue2.0的模板标记外必须使用元素包起来: eg:Vue1.0的写法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="../js/vue1.js" type="text/javascript" charset="utf-8">