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 相关文章推荐
JavaScript 基础知识 被自己遗忘的
Oct 15 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
Oct 29 Javascript
jQuery1.6 使用方法一
Nov 23 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 Javascript
js replace()去除代码中空格的实例
Feb 14 Javascript
Require.js的基本用法详解
Jul 03 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 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中heredoc的使用方法
2013/06/17 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php取得字符串首字母的方法
2015/03/25 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
最短的IE判断代码
2011/03/13 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python对数据库操作
2016/03/28 Python
python爬取个性签名的方法
2018/06/17 Python
python命令行参数用法实例分析
2019/06/25 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
为什么是 Python -m
2020/06/19 Python
详解Scrapy Redis入门实战
2020/11/18 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Django中template for如何使用方法
2021/01/31 Python
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
市场督导岗位职责
2015/04/10 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
中学社团活动总结
2015/05/07 职场文书
大学运动会加油稿
2015/07/22 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android