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背景图片闪烁(抖动)的解决办法
Sep 09 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
js图片跟随鼠标移动代码
Nov 26 Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 Javascript
JavaScript嵌入百度地图API的最详细方法
Apr 16 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
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
jquery实现直播视频弹幕效果
2020/02/25 jQuery
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python编程argparse入门浅析
2018/02/07 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
pygame实现成语填空游戏
2019/10/29 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
赔偿协议书范本
2014/04/15 职场文书
科技工作者先进事迹
2014/08/16 职场文书
接待员岗位职责
2015/02/13 职场文书
消费者投诉书范文
2015/07/02 职场文书
python库sklearn常用操作
2021/08/23 Python