欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue ensure

張吉惟1年前8瀏覽0評論

Vue.js 是一個用于構建用戶界面的漸進式框架,它允許開發者將一個應用劃分為多個模塊,每個模塊都會有自己的代碼文件,同時這些文件還可能包含其他文件,這就導致了依賴關系的鏈式嵌套。當多個模塊使用相同的依賴時,就會產生多次重復引用的情況,這種情況下我們就可以利用 Vue 的 ensure 功能來解決這個問題。

Vue ensure 實際上是 webpack 的方法,它允許在請求一個文件時先檢查這個文件是否已經被加載了,如果已經被加載了就直接返回,反之則會重新加載。vue ensure 方法就是基于這個原理實現的。

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
{
path: '/',
component: () =>import('../views/Home.vue')
},
{
path: '/about',
component: () =>import(/* webpackChunkName: "about" */ '../views/About.vue')
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router

上面的代碼是使用 Vue Router 實現路由跳轉時的代碼,我們可以發現,在它的 component 中使用了 import() 方法來加載組件,這就是我們要講到的 Vue ensure 方法。使用 import 方法來加載組件時,webpack 會將它編譯為異步代碼塊,并在執行時自動加載它們,從而實現懶加載的效果。

如果我們想讓多個模塊共用一個組件時只加載一次,就可以使用 Vue.ensure 方法,它的語法與 import 方法類似:

import Vue from 'vue'
Vue.ensure([], function () {
require('../components/MyComponent.vue')
})

上述代碼中,第一個參數為一個數組,里面存放的是需要共享的組件,第二個參數則是一個回調函數,用于在加載完成組件后執行相關操作,其底層實現就是利用了 webpack 中的 require.ensure 方法。

我們可以在 main.js 中使用 Vue.ensure 來預加載一些公共組件:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
Vue.config.productionTip = false
Vue.ensure([], function () {
require('./assets/css/reset.css')
})
new Vue({
router,
render: h =>h(App)
}).$mount('#app')

上述代碼使用 Vue.ensure 方法預加載了 reset.css 文件,以保證整個項目中的樣式都是一致的。

在使用 Vue.ensure 方法時需要注意,它只會預加載組件,不會渲染組件,因此我們需要在組件實際使用之前使用 Vue.component() 將其注冊到全局組件中。