快捷搜索:  汽车  科技

异步消息和同步消息区别(什么是异步组件)

异步消息和同步消息区别(什么是异步组件)var obj = (function(){ return{hello:'world' }})() 上述resolve相当于return。第二参数最终形态是一个对象,比如obj就是一个对象,obj ={hello:'world' } 采用函数写:案例:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>异步渲染</title> <script src="https://img.aigexing.comhttps://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script> </head> <body> <div id="app"&g

异步消息和同步消息区别(什么是异步组件)(1)

在大型应用中,我们可能需要将应用分割成小一些的代码块,并且只在需要的时候才从服务器加载一个模块。为了简化,Vue 允许你以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。例如:

异步消息和同步消息区别(什么是异步组件)(2)

如你所见,这个工厂函数会收到一个 resolve 回调,这个回调函数会在你从服务器得到组件定义的时候被调用。你也可以调用 reject(reason) 来表示加载失败。

可以在工厂函数中返回一个 Promise,所以把 webpack 2 和 ES2015 语法加在一起,可以写成这样

异步消息和同步消息区别(什么是异步组件)(3)

当使用局部注册的时候,可以直接提供一个返回 Promise 的函数:

异步消息和同步消息区别(什么是异步组件)(4)

案例:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>异步渲染</title> <script src="https://img.aigexing.comhttps://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script> </head> <body> <div id="app"> <component-child></component-child> </div> <script> Vue.component('component-child' function(resolve reject) { setTimeout(function() { resolve({ template: '<div>子组件异步渲染 3秒后把resolve参数返回去</div>' }) } 3000) }) var app = new Vue({ el: '#app' }) </script> </body> </html>

异步消息和同步消息区别(什么是异步组件)(5)

如你所见,3秒之后,resolve( )的参数传递出去,作为component()的第二参数,也就是平常我们注册组件的模式。

有部分同学可能看不懂是什么意思,其实就是:

异步消息和同步消息区别(什么是异步组件)(6)

第二参数最终形态是一个对象,比如obj就是一个对象,obj ={hello:'world' } 采用函数写:

var obj = (function(){ return{hello:'world' }})()

上述resolve相当于return。

拓展:同步变成异步的一般方式是什么?

我们需要异步是因为JavaScript是单线程的,异步可以显著改善性能。有哪些异步方式?

异步消息和同步消息区别(什么是异步组件)(7)

右侧绿色部分就是异步方式,比如事件,ajax,定时器等。

异步是一个很重要的课题,

1、延迟类型:setTimeout(setInterval也是可以的)、requestAnimationFrame、setImmediate(IE10及以上)

2、监听事件实现的类型:监听new Image加载状态、监听script加载状态、监听iframe加载状态、Message

3、带有异步功能类型: Promise、ajax( XMLHttpRequest、ActiveXObject)、Worker;

欢迎关注。

猜您喜欢: