From 383b2132c5fd92bd79af02ef650347510b9bce98 Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 26 Mar 2019 17:11:27 +0800 Subject: [PATCH] refine --- src/api/remoteSearch.js | 2 +- src/components/BackToTop/index.vue | 42 +++++++++---------- src/components/Breadcrumb/index.vue | 19 +++++---- src/components/Screenfull/index.vue | 15 +++++-- src/layout/mixin/ResizeHandler.js | 3 ++ .../example/components/ArticleDetail.vue | 4 +- vue.config.js | 18 ++++---- 7 files changed, 60 insertions(+), 43 deletions(-) diff --git a/src/api/remoteSearch.js b/src/api/remoteSearch.js index 4bf914bc..c7e19117 100644 --- a/src/api/remoteSearch.js +++ b/src/api/remoteSearch.js @@ -1,6 +1,6 @@ import request from '@/utils/request' -export function userSearch(name) { +export function searchUser(name) { return request({ url: '/search/user', method: 'get', diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue index 0c1ff792..c094037f 100644 --- a/src/components/BackToTop/index.vue +++ b/src/components/BackToTop/index.vue @@ -88,29 +88,29 @@ export default { diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index a9aee25c..ff93ff45 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -59,14 +59,15 @@ export default { diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue index 479bf3e3..260c90de 100644 --- a/src/components/Screenfull/index.vue +++ b/src/components/Screenfull/index.vue @@ -17,6 +17,9 @@ export default { mounted() { this.init() }, + beforeDestroy() { + this.destroy() + }, methods: { click() { if (!screenfull.enabled) { @@ -28,11 +31,17 @@ export default { } screenfull.toggle() }, + change() { + this.isFullscreen = screenfull.isFullscreen + }, init() { if (screenfull.enabled) { - screenfull.on('change', () => { - this.isFullscreen = screenfull.isFullscreen - }) + screenfull.on('change', this.change) + } + }, + destroy() { + if (screenfull.enabled) { + screenfull.off('change', this.change) } } } diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js index 80d8fbfa..65879d16 100644 --- a/src/layout/mixin/ResizeHandler.js +++ b/src/layout/mixin/ResizeHandler.js @@ -14,6 +14,9 @@ export default { beforeMount() { window.addEventListener('resize', this.resizeHandler) }, + beforeDestroy() { + window.removeEventListener('resize', this.resizeHandler) + }, mounted() { const isMobile = this.isMobile() if (isMobile) { diff --git a/src/views/example/components/ArticleDetail.vue b/src/views/example/components/ArticleDetail.vue index c7a963cb..409b7b1d 100644 --- a/src/views/example/components/ArticleDetail.vue +++ b/src/views/example/components/ArticleDetail.vue @@ -81,7 +81,7 @@ import MDinput from '@/components/MDinput' import Sticky from '@/components/Sticky' // 粘性header组件 import { validURL } from '@/utils/validate' import { fetchArticle } from '@/api/article' -import { userSearch } from '@/api/remoteSearch' +import { searchUser } from '@/api/remoteSearch' import Warning from './Warning' import { CommentDropdown, PlatformDropdown, SourceUrlDropdown } from './Dropdown' @@ -225,7 +225,7 @@ export default { this.postForm.status = 'draft' }, getRemoteUserList(query) { - userSearch(query).then(response => { + searchUser(query).then(response => { if (!response.data.items) return this.userListOptions = response.data.items.map(v => v.name) }) diff --git a/vue.config.js b/vue.config.js index 6116c545..7b9d2dbb 100644 --- a/vue.config.js +++ b/vue.config.js @@ -31,8 +31,8 @@ module.exports = { errors: true }, proxy: { - // Detail: https://cli.vuejs.org/config/#devserver-proxy - // xxx-api/login => mock/login + // change xxx-api/login => mock/login + // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { target: `http://localhost:${port}/mock`, changeOrigin: true, @@ -71,6 +71,8 @@ module.exports = { chainWebpack(config) { config.plugins.delete('preload') // TODO: need test config.plugins.delete('prefetch') // TODO: need test + + // set svg-sprite-loader config.module .rule('svg') .exclude.add(resolve('src/icons')) @@ -86,6 +88,8 @@ module.exports = { symbolId: 'icon-[name]' }) .end() + + // set preserveWhitespace config.module .rule('vue') .use('vue-loader') @@ -120,17 +124,17 @@ module.exports = { name: 'chunk-libs', test: /[\\/]node_modules[\\/]/, priority: 10, - chunks: 'initial' // 只打包初始时依赖的第三方 + chunks: 'initial' // only package third parties that are initially dependent }, elementUI: { - name: 'chunk-elementUI', // 单独将 elementUI 拆包 - priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app + name: 'chunk-elementUI', // split elementUI into a single package + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app test: /[\\/]node_modules[\\/]element-ui[\\/]/ }, commons: { name: 'chunk-commons', - test: resolve('src/components'), // 可自定义拓展你的规则 - minChunks: 3, // 最小公用次数 + test: resolve('src/components'), // can customize your rules + minChunks: 3, // minimum common number priority: 5, reuseExistingChunk: true }