博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的新项目学成在线笔记-day12(六)
阅读量:5991 次
发布时间:2019-06-20

本文共 1889 字,大约阅读时间需要 6 分钟。

3.6 获取数据

3.6.1 asyncData 方法

Nuxt.js 扩展了 Vue.js,增加了一个叫 asyncData 的方法, asyncData 方法会在组件(限于页面组件)每次加载 之前被调用。它可以在服务端或路由更新之前被调用。 在这个方法被调用的时候,第一个参数被设定为当前页面的 上下文对象,你可以利用 asyncData 方法来获取数据,Nuxt.js 会将 asyncData 返回的数据融合组件 data 方法 返回的数据一并返回给当前组件。

注意:由于 asyncData 方法是在组件 初始化 前被调用的,所以在方法内是没有办法通过 this 来引用组件的实例 对象。
例子:

在上边例子中的user/_id.vue中添加,页面代码如下:[mw_shl_code=applescript,true] 
[/mw_shl_code]此方法在服务端被执行,观察服务端控制台打印输出“async方法”。此方法返回data模型数据,在服务端被渲染,最后响应给前端,刷新此页面查看页面源代码可以看到name模型数 据已在页面源代码中显示。 3.6.2 async /await方法 使用async 和 await配合promise也可以实现同步调用,nuxt.js中使用async/await实现同步调用效果。 1、先测试异步调用,增加a、b两个方法,并在mounted中调用。[mw_shl_code=applescript,true]methods:{ a(){ return new Promise(function(resolve,reject){ setTimeout(function () { resolve(1) },2000) }) }, b(){ return new Promise(function(resolve,reject){ setTimeout(function () { resolve(2) },1000) }) } }, mounted(){ this.a().then(res=>{ alert(res) console.log(res) }) this.b().then(res=>{ alert(res) console.log(res) }) }[/mw_shl_code]观察客户端,并没有按照方法执行的顺序输出,使用Promise实现了异步调用。2、使用async/await完成同步调用[mw_shl_code=applescript,true]async asyncData({ store, route }) { console.log("async方法") var a = await new Promise(function (resolve, reject) { setTimeout(function () { console.log("1") resolve(1) },2000) }); var a = await new Promise(function (resolve, reject) { setTimeout(function () { console.log("2") resolve(2) },1000) }); return { name:'黑马程序员' } },[/mw_shl_code]

观察服务端控制台发现是按照a、b方法的调用顺序输出1、2,实现了使用async/await完成同步调用。

转载于:https://blog.51cto.com/13517854/2401453

你可能感兴趣的文章
一篇文章理清Python多线程之同步条件,信号量和队列
查看>>
码农,当你不再年轻
查看>>
只需几行CSS代码就可另iPhone崩溃?
查看>>
dubboFilter配置使用
查看>>
网络学习笔记(一):TCP连接的建立与关闭
查看>>
一、Java中的synchronized关键字
查看>>
针对不同创业阶段的创业者适合参加哪些创业赛事活动呢?
查看>>
有利于SEO优化的DIV+CSS的命名规矩
查看>>
SVN相关问题
查看>>
你知道判断数据类型的方法有哪些?
查看>>
nginx关于 error_page指令详解
查看>>
【JavaScript 学以致用】值的判断以及类型转换
查看>>
CreatorPrimer|scale与size
查看>>
iOS 直播间送礼物逻辑(礼物连击)
查看>>
从Fishhook到Macho文件格式(二)
查看>>
算法练习----二叉树
查看>>
快应用技术干货分享(第三篇)
查看>>
小猿圈python学习之检查文件或者文件夹是否存在
查看>>
iOS KVO学习记录
查看>>
GIT基本操作
查看>>