首页 > 其他分享 >vue实现路由懒加载(异步加载)及组件懒加载(异步加载)的方式

vue实现路由懒加载(异步加载)及组件懒加载(异步加载)的方式

时间:2023-04-10 15:46:58浏览次数:46  
标签:异步 vue HelloWorld Vue Router import 加载

转自:槐序之夏: https://blog.csdn.net/qq_42403643/article/details/129264032

一、为什么要使用路由懒加载
为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。

二、定义
懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。

三、使用
常用的懒加载方式有两种:即使用vue异步组件 和 ES中的import

路由懒加载

1、未用懒加载,vue中路由代码如下

  import Vue from 'vue'
        import Router from 'vue-router'
        import HelloWorld from '@/components/HelloWorld'

        Vue.use(Router)

        export default new Router({
         routes: [
          {
           path: '/',
           name: 'HelloWorld',
           component:HelloWorld
          }
         ]
        })

2、vue异步组件实现懒加载

方法如下:component:resolve=>(require(['需要加载的路由的地址']),resolve)

import Vue from 'vue'
import Router from 'vue-router'
  /* 此处省去之前导入的HelloWorld模块 */
Vue.use(Router)

export default new Router({
 routes: [
  {
   path: '/',
   name: 'HelloWorld',
   component: resolve=>(require(["@/components/HelloWorld"],resolve))
  }
 ]
})

3、ES 提出的import方法,(------最常用------)

方法如下:const HelloWorld = ()=>import('需要加载的模块地址')
(不加 { } ,表示直接return)

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const HelloWorld = ()=>import("@/components/HelloWorld")
export default new Router({
 routes: [
  {
   path: '/',
   name: 'HelloWorld',
   component:HelloWorld
  }
 ]
})

四、组件懒加载

相同于路由懒加载

1、原来组件中写法

<template>
 <div class="hello">
 <One-com></One-com>
 1111
 </div>
</template>

<script>
import One from './one'
export default {
 components:{
  "One-com":One
 },
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 }
}
</script>

2、const方法

<template>
 <div class="hello">
 <One-com></One-com>
 1111
 </div>
</template>

<script>
const One = ()=>import("./one");
export default {
 components:{
  "One-com":One
 },
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 }
}
</script>

3、异步方法

<template>
 <div class="hello">
 <One-com></One-com>
 1111
 </div>
</template>

<script>
export default {
 components:{
  "One-com":resolve=>(['./one'],resolve)
 },
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 }
}
</script>

五、总结:

路由和组件的常用两种懒加载方式:

1、vue异步组件实现路由懒加载
component:resolve=>(['需要加载的路由的地址',resolve])

2、es提出的import(推荐使用这种方式)
const HelloWorld = ()=>import('需要加载的模块地址')

标签:异步,vue,HelloWorld,Vue,Router,import,加载
From: https://www.cnblogs.com/huihuihero/p/17303108.html

相关文章

  • 关于vue2老项目的打包优化,实现首屏加载速度提升
    分析项目代码体积yarnaddwebpack-bundle-analyzer在webpack.dev.conf.js中配置constBundleAnalyzerPlugin=require('webpack-bundle-analyzer').BundleAnalyzerPluginplugins:[newBundleAnalyzerPlugin(),//代码体积分析插件......]执行yarnrundev或......
  • vue3中的自定义指令
    1.适用到自定义指令的场景 防抖、图片懒加载、一键Copy的功能、拖拽、页面水印、权限校验、输入框自动聚焦、相对时间转换、下拉菜单2.个人需求:在后台系统中,有很多表单提交组件,其中很多限制数字且限制条件不同。最初使用oninput="value=value.replace(/[^\d]/g,'')"来显示......
  • vue3 高德地图弹窗选址功能
    import{defineComponent,h}from'vue';importAMapLoaderfrom'@amap/amap-jsapi-loader';import{Input,AutoComplete,Modal,message}from'ant-design-vue';//首先需要引入Vue3的shallowRef方法(使用shallowRef进行非深度监听,因为在Vue3所......
  • vue3 环境搭建部署
    安装node查看版本chenjun@chenjundeMacBook-Airuitest%node-vv18.7.0创建vue项目(⚠️注意项目名称小写)npminitvue@latest运行vue项目 1cd项目2npminstall3npmrundev ......
  • vscode保存时自动ESLint格式化(vue)
    一、安装eslint  二、vscode全局配置2.1打开设置   2.2打开settings.json  2.3在settings.json中添加eslint配置{"code-runner.runInTerminal":true,"eslint.format.enable":true,//以下是eslint配置//vscode默认启用了根据文件......
  • vueuse cookie token使用
    <template><h1>后台首页</h1><el-button@click="set">设置</el-button><el-button@click="get">读取</el-button><el-button@click="remove">删除</el-button></template>......
  • Vue router 跳转
    useRouter(跳转),useRoute(获取路由参数)//login.vue//路由跳转-引入-01import{useRouter}from"vue-router";//路由跳转-实例化后-02//useRouter使用push方法进行跳转constrouter=useRouter()//路由跳转-跳转到后台首页-03router.push('/')......
  • vue的几个记录
    1.父组件传递子组卷数组参数props:{boxData:{type:Array,default:()=>[],//重点},2.要实现父组件传递子组卷的参数动态更新(父-》子-》子,也只需要在最后一个子组件监听即可。)需要用到监听器watch:{//监听父组件传递的参数,以动态更新boxDa......
  • Vue2异步更新及nextTick原理
    vue官网中是这样描述nextTick的在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,可以获取更新后的DOM。在学习nextTick是如何实现之前,我们要先了解下JavaScript的执行机制JavaScript执行机制浏览器是多线程的,例如GUI渲染线程、JS引擎线程......
  • SpringMVC中使用引入jquery不能加载页面
    今天在学习springMVC的json数据绑定时,需要使用到jquery发送ajax请求。但是当我通过是<script>标签引入了jquery.js。但是当我访问该jsp的时候就是不显示页面的内容我一直以为时SpringMVC的servelt拦截器拦截了静态资源,但是我过滤了静态资源还是不显示。后来才发现,我把<script......