vue.js,ajax渲染页面的实例


Posted in Javascript onFebruary 11, 2018

关于上次说的用vue.js,zepto,node.js,webpack等技术重构CNode。这是一个比较入门的项目,一般你学完vue就可以上手了,CNode网站有公开的API所以你可以获取这个网站的所有数据接口,然后渲染到页面上,用CSS等加工一下就可以了。起初,我一直感觉好难好难好难,虽然说不出难在哪里,就感觉好难好难好难。让我细说,不就是用ajax获取数据,然后传到组件上渲染吗,再模仿着写样式不就好了吗。是不难啊,可是为什么我心里天然觉得很难呢?

CNode是给了我们数据接口,ajax也就那么几个方法。后来我仔细想想,发现了内心恐惧的地方是ajax。是啊,给了我数据接口,我能获取到数据,但是你给了我什么啊?在没用之前,对于ajax获取到的数据我是未知的。人总对自己未知的东西感到恐惧!就像同学说的,ajax我之前以为很难的啊,后来我用起来感觉也没什么啊。我想,大部分初学者对于ajax的困惑往往就在于对他获取到的数据的未知性的恐惧。

既然恐惧它的未知性,那么我们不妨好好看看这个“数据”!这里我用的是zepto的Ajax方法(现学现用嘛)。

let data = { 
 page: 1, 
 limit: 20,//获取20个 
 tab: 'all', 
 mdrender: true 
}; 
let topics = []; 
$.get("https://cnodejs.org/api/v1/topics", data, function (res) { 
   if (res && res.data) { // 如果查到数据 
   topics = res.data; 
   } 
  })

然后在Console输入topics

ajax获取到的是Json格式,如上图所示,我们可以看到获取到了20个Json类型的“对象”,每个对象有那么多个属性。比如我要获取第一个对象的title

现在你应该看穿了ajax获取到的那个数据了吧,感觉这一小步迈出去后,整个人都轻松了。

趁热打铁,简单的用vue渲染一个页面。

HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <script src="http://zeptojs.com/zepto.js"></script> 
 <script src="vue.js"></script> 
</head> 
<body> 
<div id="app"> 
 <ul> 
  <li v-for="(item,i) in items" :key="item.id">  
   <span class="index" :title="i + 1">{{(i + 1) > 9999 ? "..." : (i + 1)}}</span> 
   <span class="face"> 
     <img :src="item.author.avatar_url" alt="" :title="item.author.loginname" width="80" height="80" /> 
   </span> 
   <span class="name" :title="item.title">{{item.title}}</span></li> 
 
 </ul> 
</div> 
<script src="Ajax-demo1.js"></script> 
</body> 
</html>

JS:

new Vue({ 
 el: '#app', 
 data:{ 
  items:[], 
  scroller:null, 
  tip:{ 
    page: 1, 
    limit: 20, 
    tab: 'all', 
    mdrender: true 
  } 
 }, 
 methods:{ 
  getData(){ 
   let self = this; 
   $.get("https://cnodejs.org/api/v1/topics", this.tip, function (res) { 
    if (res && res.data) { // 如果查到数据 
    self.items = res.data; 
   } 
  }) 
  } 
 }, 
 created:function() { 
  this.getData(); 
  console.log("success"); 
 }, 
 mounted:function() { 
 
 } 
})

emmmmm,有个小问题得说下,AJAX是异步函数(关于异步可以去看我上一篇博客),它的回调函数执行环境是全局作用域,所以在getData中AJAX的this指向的是window。这有两个解决方法,一个是像我这样的用self把this存起来,还有一种就是用箭头函数this绑定。

很多时候,我们往往对未知的事物感到恐惧,而这个恐惧往往阻碍我们迈出战胜未知的那一步,这时候咬咬牙,迈出去就好了,困难永远都只存在于脑子里。

以上这篇vue.js,ajax渲染页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
加速IE的Javascript document输出的方法
Dec 02 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
Sep 29 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
Sep 17 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 #Javascript
vue中引用阿里字体图标的方法
Feb 10 #Javascript
Express进阶之log4js实用入门指南
Feb 10 #Javascript
Vue完整项目构建(进阶篇)
Feb 10 #Javascript
JS简单获得节点元素的方法示例
Feb 10 #Javascript
JS简单添加元素新节点的方法示例
Feb 10 #Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 #Javascript
You might like
文件上传类
2006/10/09 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
计算机专业自荐信
2013/10/14 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
学校门卫岗位职责
2014/03/16 职场文书
主持词开场白
2014/03/17 职场文书
爱心活动计划书
2014/04/26 职场文书
局火灾防控工作方案
2014/05/25 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
走近毛泽东观后感
2015/06/04 职场文书
员工考勤管理制度
2015/08/06 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript