详解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 密码强度判断代码
Sep 05 Javascript
javascript 设置文本框中焦点的位置
Nov 20 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 Javascript
使用js简单实现了tree树菜单
Nov 20 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
使用localStorage替代cookie做本地存储
Sep 25 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+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
js有序数组的连接问题
2013/10/01 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
Python日志syslog使用原理详解
2020/02/18 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
如何利用Python 进行边缘检测
2020/10/14 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
小学数学课后反思
2014/04/23 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
企业宗旨标语
2014/06/10 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL