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 相关文章推荐
Jquery实现无刷新DropDownList联动实现代码
Mar 08 Javascript
SOSO地图JS画出标注和中心点以html形式运行
Aug 09 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
Feb 28 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
vue如何截取字符串
May 06 Javascript
ant design实现圈选功能
Dec 17 Javascript
Js跳出两级循环方法代码实例
Sep 22 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php中session与cookie的比较
2015/01/27 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
python双向链表实现实例代码
2013/11/21 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
玩转python爬虫之正则表达式
2016/02/17 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python中嵌套函数的实操步骤
2019/02/27 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
课程设计心得体会
2013/12/28 职场文书
小学生成长感言
2014/01/30 职场文书
大型车展策划方案
2014/02/01 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers