详解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 相关文章推荐
greybox——不开新窗口看新的网页
Feb 20 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
页面加载完后自动执行一个方法的js代码
Sep 06 Javascript
JS中Eval解析JSON字符串的一个小问题
Feb 21 Javascript
jQuery插件制作的实例教程
May 16 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
微信小程序网络请求wx.request详解及实例
May 18 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
npm ci命令的基本使用方法
Sep 20 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如何编写易读的代码
2007/07/10 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP实现货币换算的方法
2014/11/29 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
取得父标签
2006/11/14 Javascript
可以支持多中格式的JS键盘
2007/05/02 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Python tornado上传文件的功能
2020/03/26 Python
python爬虫工具例举说明
2020/11/30 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
css3中transition属性详解
2014/09/02 HTML / CSS
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
党校自我鉴定范文
2013/10/02 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
志愿者活动总结报告
2014/06/27 职场文书
一年级小学生评语大全
2014/12/25 职场文书
员工工作表现自我评价
2015/03/06 职场文书
标准发言稿结尾
2019/07/18 职场文书