From 229be3c546a1fef5019d45d8b5cd8ab382849267 Mon Sep 17 00:00:00 2001 From: han_feng Date: Thu, 15 Nov 2018 11:30:26 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B8=A6=E5=8F=82?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E7=BC=93=E5=AD=98=E6=A1=88=E4=BE=8B=EF=BC=8C?= =?UTF-8?q?=E9=A1=BA=E4=BE=BF=E8=A7=A3=E5=86=B3=20issues=20#133?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 539ba541e07a43a03b22a16bec8b680ce6011d61 [formerly 539ba541e07a43a03b22a16bec8b680ce6011d61 [formerly 539ba541e07a43a03b22a16bec8b680ce6011d61 [formerly 539ba541e07a43a03b22a16bec8b680ce6011d61 [formerly 26a4e88c8572d7b498fea2791fb9dc428a93d8d3 [formerly 1407c6c3eadde6eb7e539898d13282bf5ec520dc]]]]] Former-commit-id: 46a26343895210835e3d6c0afc5e046e973054f9 Former-commit-id: b281a46d9e588702e651751d175f876f8e5c0cec Former-commit-id: 9b9466a5d46d2908a74a0730237f965bec36cad5 [formerly 908c29cced36962c1ae58d0194fa5d96b18b36de] Former-commit-id: 52f5fe7e02ae4f3421c6aa1ac6bb70369e69855a Former-commit-id: 7e7de54f344d5178c5083b456eadf6f34b3ceafe Former-commit-id: 98c5518762f16cc81feb63c7dd700f3b9fced766 Former-commit-id: 1cccd8fcd156848ca8fa8edfa9ae522cce786882 Former-commit-id: 57fb744f0537412125f9eaa360b81e9bae575a43 --- .../header-aside/components/tabs/index.vue | 4 +-- .../demo/playground/page-cache/params.vue | 26 +++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/layout/header-aside/components/tabs/index.vue b/src/layout/header-aside/components/tabs/index.vue index 45b4e029..39f9f63b 100644 --- a/src/layout/header-aside/components/tabs/index.vue +++ b/src/layout/header-aside/components/tabs/index.vue @@ -19,8 +19,8 @@ @edit="handleTabsEdit" @contextmenu.native="handleContextmenu"> diff --git a/src/pages/demo/playground/page-cache/params.vue b/src/pages/demo/playground/page-cache/params.vue index 7ce777ba..8a512920 100644 --- a/src/pages/demo/playground/page-cache/params.vue +++ b/src/pages/demo/playground/page-cache/params.vue @@ -3,19 +3,35 @@

编号:{{id}}

在下面的输入框输入任意字符后,切换到其它页面,再回到此页时输入框文字保留,证明被缓存

- + + diff --git a/src/components/d2-container/components/mixins/scroll.normal.js b/src/components/d2-container/components/mixins/scroll.normal.js new file mode 100644 index 00000000..34e800d6 --- /dev/null +++ b/src/components/d2-container/components/mixins/scroll.normal.js @@ -0,0 +1,26 @@ +// 提供滚动方面的功能 +// 非滚动优化模式通用 + +import { throttle } from 'lodash' + +/** + * 根据配置输出 mixin 设置 + * @param {String} ref 滚动容器 ref 名称 + */ +export default function ({ ref }) { + return { + data () { + return { + throttledHandleScroll: throttle(() => { + console.log(this.$refs[ref].scrollTop) + }, 300) + } + }, + mounted () { + this.$refs[ref].addEventListener('scroll', this.throttledHandleScroll) + }, + beforeDestroy () { + this.$refs[ref].removeEventListener('scroll', this.throttledHandleScroll) + } + } +} From 7cd729772360803c71cd680b08a612d5020705ab Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Thu, 8 Nov 2018 23:08:07 +0800 Subject: [PATCH 04/23] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 1ada65d8ae7f042e9fb184148e21b8ecdfc940e1 [formerly 1ada65d8ae7f042e9fb184148e21b8ecdfc940e1 [formerly 1ada65d8ae7f042e9fb184148e21b8ecdfc940e1 [formerly 1ada65d8ae7f042e9fb184148e21b8ecdfc940e1 [formerly 3b2fffc792fa182bbfd7f639f75935ee95000ebc [formerly d9516320f8cf3e50148bb1e44171e656f9dc0a4a]]]]] Former-commit-id: 6bdc2ca75847c570d857c46164c707a2290bf1fb Former-commit-id: 7dfb5a24d74fba2e52aee345cadb43bbba884819 Former-commit-id: 7925a7906733ee3aad78c370bd7ecc3b193d3648 [formerly dd2fdf6fee672dba3c00db857902e2b17b8a4853] Former-commit-id: 6db2895d3e7239333ccdb55844423e48cb34f29a Former-commit-id: f576d9ebe24fc8e9613511ed1b86c942e56bc167 Former-commit-id: 9c070d963ad7ded364a6c1cce264076c1aa4b550 Former-commit-id: 099433557a963bfe1647a807e8d129e200281e01 Former-commit-id: 063ae4244f815db3de163f6aa61a57015fb0f181 --- .../components/d2-container-full.vue | 14 ++- .../components/mixins/scroll.normal.js | 56 +++++++---- src/components/d2-container/index.vue | 6 +- src/menu/modules/demo-components.js | 3 +- src/pages/demo/components/container/api.vue | 96 +++++++++++++++++++ .../container/components/d2-demo-article.vue | 45 +++++---- src/router/modules/components.js | 1 + 7 files changed, 181 insertions(+), 40 deletions(-) create mode 100644 src/pages/demo/components/container/api.vue diff --git a/src/components/d2-container/components/d2-container-full.vue b/src/components/d2-container/components/d2-container-full.vue index bc66cc79..0c8a719a 100644 --- a/src/components/d2-container/components/d2-container-full.vue +++ b/src/components/d2-container/components/d2-container-full.vue @@ -17,9 +17,15 @@ import scroll from './mixins/scroll.normal' export default { name: 'd2-container-full', mixins: [ - scroll({ - ref: 'body' - }) - ] + scroll + ], + mounted () { + // 增加滚动事件监听 + this.addScrollListener() + }, + beforeDestroy () { + // 移除滚动事件监听 + this.removeScrollListener() + } } diff --git a/src/components/d2-container/components/mixins/scroll.normal.js b/src/components/d2-container/components/mixins/scroll.normal.js index 34e800d6..f057628b 100644 --- a/src/components/d2-container/components/mixins/scroll.normal.js +++ b/src/components/d2-container/components/mixins/scroll.normal.js @@ -3,24 +3,48 @@ import { throttle } from 'lodash' -/** - * 根据配置输出 mixin 设置 - * @param {String} ref 滚动容器 ref 名称 - */ -export default function ({ ref }) { - return { - data () { - return { - throttledHandleScroll: throttle(() => { - console.log(this.$refs[ref].scrollTop) - }, 300) +// 生成滚动事件的 handler +function handleMaker (wait) { + return throttle(e => this.$emit('scroll', e), wait) +} + +export default { + props: { + // 滚动事件节流间隔 + scrollDelay: { + type: Number, + required: false, + default: 100 + } + }, + data () { + return { + handleScroll: null + } + }, + watch: { + scrollDelay (val) { + // 移除旧的监听 + this.removeScrollListener() + // 生成新的 handle 方法 + this.handleScroll = handleMaker.call(this, val) + // 添加新的监听 + this.addScrollListener() + } + }, + methods: { + // 增加滚动事件监听 + addScrollListener () { + if (typeof this.handleScroll !== 'function') { + // mounted 生命周期内调用这个方法的时候会进入这里的判断 + this.handleScroll = handleMaker.call(this, this.scrollDelay) } + // 添加监听 + this.$refs.body.addEventListener('scroll', this.handleScroll) }, - mounted () { - this.$refs[ref].addEventListener('scroll', this.throttledHandleScroll) - }, - beforeDestroy () { - this.$refs[ref].removeEventListener('scroll', this.throttledHandleScroll) + // 移除滚动事件监听 + removeScrollListener () { + this.$refs.body.removeEventListener('scroll', this.handleScroll) } } } diff --git a/src/components/d2-container/index.vue b/src/components/d2-container/index.vue index 17dbbebc..d975ce03 100644 --- a/src/components/d2-container/index.vue +++ b/src/components/d2-container/index.vue @@ -1,7 +1,7 @@