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 相关文章推荐
使用原生js写的一个简单slider
Apr 29 Javascript
javascript 自定义回调函数示例代码
Sep 26 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
JavaScript中String.prototype用法实例
May 20 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
从零学习node.js之利用express搭建简易论坛(七)
Feb 25 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
Vue 源码分析之 Observer实现过程
Mar 29 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
使javascript也能包含文件
2006/10/26 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python实现银行管理系统
2019/10/25 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python实现SMTP邮件发送
2020/06/16 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
Java面试题及答案
2012/09/08 面试题
毕业生自荐书
2014/02/02 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
旅游文化节策划方案
2014/06/06 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android