Vue按需加载的具体实现
概念(懒加载)
当打包构建应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,嗯,这样就更加高效了。
场景
xxx项目作为一个单页面应用,采用组件化的开发模式,每次启动首页都会加载全部组件,但此时只是访问了首页而已,就造成了大量组件污染加载的情况。
目的
只在访问当前页面时加载对应组件,避免页面组件全部加载。(按需加载)
实现
app.vue
<template>
<div id="app">
<router-view/>
</div>
</template>
router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import 'babel-polyfill'
import {Promise} from 'es6-promise-polyfill'
import App from '../components/app'
// 定义路由,每个路由映射一个组件。
const Routers = [
{
path: '/', // 路径
component: resolve => require(['../components/member/index], resolve) // 异步加载组件
},
{
path: '/login',
component: resolve => require(['../components/member/login'], resolve)
}
]
const RouterConfig = {
routes: Routers
}
// 创建router实例,并传递路由配置。
const router = new VueRouter(RouterConfig);
// 创建并挂载根实例。
new Vue({
el:'#app',
router,
// 将h作为createElement的别名是一个通用惯例。
render: h =>(App)
})
注意:
require()函数接受两个参数。第一个参数是一个数组,表示所依赖的模块,例如['moduleA','moduleB'],第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数形式传入该函数,从而在回调函数内部使用这些模块。
示例代码中使用了异步的方式加载组件,其中require函数负责异步引入将要渲染的组件,而resolve则负责异步回调渲染组件。
babel-polyfill:对Promise进行转码编译;
npm install --save babel-polyfill
es6-promise-polyfill 解决Promise兼容性问题。关于不太了解Promise的同学请移步这里
npm install --save es6-promise-polyfill
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持积木网。
vue微信分享 vue实现当前页面分享其他页面
本文实例为大家分享了vue微信分享展示的具体代码,供大家参考,具体内容如下首先以分享给朋友为例1、先看官方文档wx.onMenuShareAppMessage({title:'',//分享
Angular之toDoList的实现代码示例
什么是todolist所谓的todolist就是把你所做的事情按顺序全部列出来,然后做完一件事,就在这一项之前打勾,此时状态就会变成已完成,todolist可以对所
vue中eventbus被多次触发以及踩过的坑
一开始的需求是这样子的,我为了实现两个页面组件之间的数据传递,假设我有页面A,点击页面A上的某一个按钮之后,页面会自动跳转到页面B,同时
扫码添加企业微信,预约演示。
