详解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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
javascript一点特殊用法
May 28 Javascript
判断控件是否已加载完成的代码
Feb 24 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
Aug 20 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
div实现自适应高度的textarea实现angular双向绑定
Jan 08 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
axios对请求各种异常情况处理的封装方法
Sep 25 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
React组件生命周期详解
2017/07/03 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
python删除过期log文件操作实例解析
2018/01/31 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
浅析Python3 pip换源问题
2020/01/06 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Python如何执行系统命令
2020/09/23 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
自荐书范文范例
2014/02/13 职场文书
个人贷款担保书
2014/04/01 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
Python如何让字典保持有序排列
2022/04/29 Python