详解vue-Resource(与后端数据交互)


Posted in Javascript onJanuary 16, 2017

单来说,vue-resource就像jQuery里的$.ajax,用来和后端交互数据的。可以放在created或者ready里面运行来获取或者更新数据...

vue-resource文档:https://github.com/vuejs/vue-resource/blob/master/docs/http.md

结合vue-router

data(){
    return{
      toplist:[],
      alllist:[]
    }
  },
  //vue-router
  route:{
    data({to}){
      //并发请求,利用 Promise 
      return Promise.all([
        //简写
        this.$http.get('http://192.168.30.235:9999/rest/knowledge/list',{'websiteId':2,'pageSize':5,'pageNo':1,'isTop':1}),
        //this.$http.get('http://192.168.30.235:9999/rest/knowledge/list',{'websiteId':2,'pageSize':20,'pageNo':1,'isTop':0})
        //不简写
        this.$http({
          method:'GET',
          url:'http://192.168.30.235:9999/rest/knowledge/list',
          data:{'websiteId':2,'pageSize':20,'pageNo':1,'isTop':0},
          headers: {"X-Requested-With": "XMLHttpRequest"},
          emulateJSON: true
          })
        ]).then(function(data){//es5写法
           return{
            toplist:data[0].data.knowledgeList,
            alllist:data[1].data.knowledgeList
          }
        //es6写法 .then()部分
        //.then(([toplist,alllist])=>({toplist,alllist})) 
      },function(error){
        //error
      })
    }
  }

在其他地方使用

ready(){
    var that=this;
    var websiteid = 2,
      pagesize = 20,
      pageno =1; 
    that.$http({
      method:'GET',
      url:'http://192.168.30.235:9999/rest/knowledge/list',
      data:{'websiteId':websiteid,'pageSize':pagesize,'pageNo':pageno,'isTop':0}
    }).then(function(data){
      //赋值给alllist数组,
      that.$set('alllist',data.data.knowledgeList)
    })
    //简写
    /*that.$http.get('http://192.168.30.235:9999/knowledge/list',{'websiteId':2,'pageSize':20,'pageNo':1,'isTop':0}).then(function(response){
      that.$set('alllist',response.data.knowledgeList)
    })*/
  }

若定义全部变量(在data()中定义),使用$get()获取

data(){
    return{
      toplist:[],
      alllist:[],
      websiteid:2,
      pagesize:20,
      pageno:1
    }
  },
ready(){
    var that=this;
    that.$http({
      method:'GET',
      url:'http://192.168.30.235:9999/rest/knowledge/list',
      //使用定义的全局变量 用$get()获取
      data:{'websiteId':that.$get('websiteid'),'pageSize':that.$get('pagesize'),'pageNo':that.$get('pageno'),'isTop':0}
    }).then(function(data){
      //赋值给alllist数组,
      that.$set('alllist',data.data.knowledgeList)
    },function(error){
      //error
     })
  }

 post方式同理

将数据绑定到dom上

<ul>
  <li v-for="item in alllist" v-if="item.istop == false">
    <a v-link="{ name: 'getReceiptDetail',params:{knowledgeId: item.id }}">
      <div class='fl know-info'>




<!-- | limit 和 | timer是filter 在后续会说到-->





<!--字段含义: -->
        <p class='font-normal nomal-height'>{{item.title | limit 30 }}</p>         




  <p class='co9a9a9a' ><span style='margin-right: 1rem;'>{{item.viewTimes}}K</span><span>{{item.publishTime | timer }}</span></p> <!--viewTimes:有多少人查看 , publishTime:发布时间-->
      </div>
      <div class='fr know-img'>
        <img v-bind:src=item.coverImage />
      </div>
      <div class='clearfix'></div>
    </a>
  </li>
</ul>

在vue-validator中做post示例 , 将接口请求地址定义为全局详见VUEX

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 动态生成方法的例子
Jul 22 Javascript
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
Jan 24 Javascript
关于query Javascript CSS Selector engine
Apr 12 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
vue实现密码显示隐藏切换功能
Feb 23 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
Vue中使用vee-validate表单验证的方法
May 09 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
Vue Object 的变化侦测实现代码
Apr 15 Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 Javascript
微信小程序 封装http请求实例详解
Jan 16 #Javascript
详解vue-validator(vue验证器)
Jan 16 #Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
Jan 16 #Javascript
webpack入门必知必会
Jan 16 #Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 #Javascript
jQuery实现简易的输入框字数计数功能示例
Jan 16 #Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 #Javascript
You might like
PHP安全编程之加密功能
2006/10/09 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
原生js实现日期计算器功能
2017/02/17 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python基于http下载视频或音频
2018/06/20 Python
python list转置和前后反转的例子
2019/08/26 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
python tkinter实现连连看游戏
2020/11/16 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
英文请假条
2014/04/11 职场文书
个人工作年终总结
2015/03/09 职场文书