详解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 相关文章推荐
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
JavaScript DOM节点添加示例
Jul 16 Javascript
探讨JavaScript中的Rest参数和参数默认值
Jul 29 Javascript
JavaScript中用let语句声明作用域的用法讲解
May 20 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
vue-resource 拦截器使用详解
Feb 21 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
Sep 26 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 Javascript
javascript canvas API内容整理
Feb 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
PHP7 windows支持
2021/03/09 PHP
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
virtualenv实现多个版本Python共存
2017/08/21 Python
Python函数返回不定数量的值方法
2019/01/22 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
python re模块和正则表达式
2021/03/24 Python
计算机专业个人求职自荐信
2013/09/21 职场文书
高考标语大全
2014/06/05 职场文书
主要负责人任命书
2014/06/06 职场文书
2016大学军训心得体会
2016/01/11 职场文书