zoukankan      html  css  js  c++  java
  • vue2组件之异步组件...resolve

    看开源项目的时候看到这样的用法:

    发现与之前定义组件的方式不一样,这个resolve又是什么?

    原来这个是vue的异步组件实现,可以看这里:《异步组件

    异步组件的需求:

    在大型应用中,我们可能需要将应用拆分为多个小模块,按需从服务器下载。, Vue.js 允许将组件定义为一个工厂函数,动态地解析组件的定义。Vue.js 只在组件需要渲染时触发工厂函数,并且把结果缓存起来,用于后面的再次渲染。例如:

    Vue.component('async-example', function (resolve, reject) {
      setTimeout(function () {
        // Pass the component definition to the resolve callback
        resolve({
          template: '<div>I am async!</div>'
        })
      }, 1000)
    })

    工厂函数接收一个 resolve 回调,在收到从服务器下载的组件定义时调用。也可以调用 reject(reason) 指示加载失败。这里 setTimeout 只是为了演示。怎么获取组件完全由你决定。推荐配合使用 :Webpack 的代码分割功能

    Vue.component('async-webpack-example', function (resolve) {
      // 这个特殊的 require 语法告诉 webpack
      // 自动将编译后的代码分割成不同的块,
      // 这些块将通过 Ajax 请求自动下载。
      require(['./my-async-component'], resolve)
    })

    你可以使用 Webpack 2 + ES2015 的语法返回一个 Promise resolve 函数:

    Vue.component(
      'async-webpack-example',
      () => import('./my-async-component')
    )
  • 相关阅读:
    java 常用
    面试题目总结
    前端自动化构建工具gulp记录
    js面向对象学习笔记
    sass,compass学习笔记总结
    JS核心知识点:DOMBOMEVENT
    boost atomic
    boost thread
    boost function bind ref
    boost phoenix
  • 原文地址:https://www.cnblogs.com/guazi/p/6761931.html
Copyright © 2011-2022 走看看