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 得到当前页面高度和宽度的两个函数
Feb 21 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
Oct 14 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
angularjs封装bootstrap时间插件datetimepicker
Jun 20 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
Jul 02 Javascript
JS实现移动端点击按钮复制文本内容
Jul 28 Javascript
JS中的const命令你真懂它吗
Mar 08 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获取当前url的具体方法全面解析
2013/11/26 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python创建临时文件夹的方法
2015/07/06 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
python画环形图的方法
2020/03/25 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Python 如何展开嵌套的序列
2020/08/01 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
经济贸易系毕业生求职信
2014/05/31 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
财务审计整改报告
2014/11/06 职场文书
部分武汉产收音机展览
2022/04/07 无线电