详解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 相关文章推荐
jquery的$(document).ready()和onload的加载顺序
May 26 Javascript
jQeury淡入淡出需要注意的问题
Sep 08 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
jQuery实现宽屏图片轮播实例教程
Nov 24 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
Jul 15 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
微信小程序 如何保持登录状态
Aug 16 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在字符串中查找另一个字符串
2008/11/19 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
构建Python包的五个简单准则简介
2015/06/15 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
库房主管岗位职责
2013/12/31 职场文书
设备管理实施方案
2014/05/31 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
佛光寺导游词
2015/02/10 职场文书
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android