From c107ce703f731deed0c52d28dbfc7a5823a2341a Mon Sep 17 00:00:00 2001 From: chenruilong Date: Fri, 30 Jun 2023 20:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E4=BB=B6=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 2 +- pages.json | 80 ++++++++++++++++- pages/component-instance/attrs/attrs.test.js | 5 ++ pages/component-instance/attrs/attrs.uvue | 35 ++++++++ pages/component-instance/attrs/child.uvue | 43 +++++++++ pages/component-instance/data/data.test.js | 26 ++++++ pages/component-instance/data/data.uvue | 52 +++++++++++ pages/component-instance/el/el.test.js | 5 ++ pages/component-instance/el/el.uvue | 28 ++++++ .../emit-function/child.uvue | 20 +++++ .../emit-function/emit-function.test.js | 5 ++ .../emit-function/emit-function.uvue | 44 ++++++++++ .../forceUpdate-function.test.js | 5 ++ .../forceUpdate-function.uvue | 37 ++++++++ .../nextTick-function.test.js | 5 ++ .../nextTick-function/nextTick-function.uvue | 33 +++++++ pages/component-instance/options/mixins.ts | 12 +++ .../options/options.test.js | 5 ++ pages/component-instance/options/options.uvue | 43 +++++++++ pages/component-instance/parent/child.uvue | 27 ++++++ .../component-instance/parent/parent.test.js | 5 ++ pages/component-instance/parent/parent.uvue | 34 ++++++++ .../component-instance/props/check-type.uvue | 87 +++++++++++++++++++ pages/component-instance/props/props.test.js | 5 ++ pages/component-instance/props/props.uvue | 48 ++++++++++ pages/component-instance/props/simple.uvue | 42 +++++++++ pages/component-instance/refs/child.uvue | 17 ++++ pages/component-instance/refs/refs.test.js | 5 ++ pages/component-instance/refs/refs.uvue | 31 +++++++ pages/component-instance/root/root.test.js | 5 ++ pages/component-instance/root/root.uvue | 30 +++++++ pages/component-instance/slots/slot.uvue | 26 ++++++ pages/component-instance/slots/slots.test.js | 5 ++ pages/component-instance/slots/slots.uvue | 30 +++++++ .../watch-function/watch-function.test.js | 5 ++ .../watch-function/watch-function.uvue | 69 +++++++++++++++ pages/index.uvue | 41 ++++++--- 37 files changed, 982 insertions(+), 15 deletions(-) create mode 100644 pages/component-instance/attrs/attrs.test.js create mode 100644 pages/component-instance/attrs/attrs.uvue create mode 100644 pages/component-instance/attrs/child.uvue create mode 100644 pages/component-instance/data/data.test.js create mode 100644 pages/component-instance/data/data.uvue create mode 100644 pages/component-instance/el/el.test.js create mode 100644 pages/component-instance/el/el.uvue create mode 100644 pages/component-instance/emit-function/child.uvue create mode 100644 pages/component-instance/emit-function/emit-function.test.js create mode 100644 pages/component-instance/emit-function/emit-function.uvue create mode 100644 pages/component-instance/forceUpdate-function/forceUpdate-function.test.js create mode 100644 pages/component-instance/forceUpdate-function/forceUpdate-function.uvue create mode 100644 pages/component-instance/nextTick-function/nextTick-function.test.js create mode 100644 pages/component-instance/nextTick-function/nextTick-function.uvue create mode 100644 pages/component-instance/options/mixins.ts create mode 100644 pages/component-instance/options/options.test.js create mode 100644 pages/component-instance/options/options.uvue create mode 100644 pages/component-instance/parent/child.uvue create mode 100644 pages/component-instance/parent/parent.test.js create mode 100644 pages/component-instance/parent/parent.uvue create mode 100644 pages/component-instance/props/check-type.uvue create mode 100644 pages/component-instance/props/props.test.js create mode 100644 pages/component-instance/props/props.uvue create mode 100644 pages/component-instance/props/simple.uvue create mode 100644 pages/component-instance/refs/child.uvue create mode 100644 pages/component-instance/refs/refs.test.js create mode 100644 pages/component-instance/refs/refs.uvue create mode 100644 pages/component-instance/root/root.test.js create mode 100644 pages/component-instance/root/root.uvue create mode 100644 pages/component-instance/slots/slot.uvue create mode 100644 pages/component-instance/slots/slots.test.js create mode 100644 pages/component-instance/slots/slots.uvue create mode 100644 pages/component-instance/watch-function/watch-function.test.js create mode 100644 pages/component-instance/watch-function/watch-function.uvue diff --git a/App.vue b/App.vue index ee151ba..058ac5f 100644 --- a/App.vue +++ b/App.vue @@ -100,4 +100,4 @@ export default { padding: 5px 0; border-bottom: 1px solid #dfdfdf; } - \ No newline at end of file + diff --git a/pages.json b/pages.json index a2aa0d7..7bbbad0 100644 --- a/pages.json +++ b/pages.json @@ -57,6 +57,84 @@ "style": { "navigationBarTitleText": "page-lifecycle" } + }, + { + "path": "pages/component-instance/data/data", + "style": { + "navigationBarTitleText": "$data" + } + }, + { + "path": "pages/component-instance/props/props", + "style": { + "navigationBarTitleText": "$props" + } + }, + { + "path": "pages/component-instance/el/el", + "style": { + "navigationBarTitleText": "$el" + } + }, + { + "path": "pages/component-instance/options/options", + "style": { + "navigationBarTitleText": "$options" + } + }, + { + "path": "pages/component-instance/parent/parent", + "style": { + "navigationBarTitleText": "$parent" + } + }, + { + "path": "pages/component-instance/root/root", + "style": { + "navigationBarTitleText": "$root" + } + }, + { + "path": "pages/component-instance/slots/slots", + "style": { + "navigationBarTitleText": "$slots" + } + }, + { + "path": "pages/component-instance/refs/refs", + "style": { + "navigationBarTitleText": "$refs" + } + }, + { + "path": "pages/component-instance/attrs/attrs", + "style": { + "navigationBarTitleText": "$attrs" + } + }, + { + "path": "pages/component-instance/watch-function/watch-function", + "style": { + "navigationBarTitleText": "$watch()" + } + }, + { + "path": "pages/component-instance/emit-function/emit-function", + "style": { + "navigationBarTitleText": "$emit()" + } + }, + { + "path": "pages/component-instance/forceUpdate-function/forceUpdate-function", + "style": { + "navigationBarTitleText": "$forceUpdate()" + } + }, + { + "path": "pages/component-instance/nextTick-function/nextTick-function", + "style": { + "navigationBarTitleText": "$nextTick()" + } } ], "globalStyle": { @@ -82,4 +160,4 @@ "query": "" //启动参数,在页面的onLoad函数里面得到 }] } -} \ No newline at end of file +} diff --git a/pages/component-instance/attrs/attrs.test.js b/pages/component-instance/attrs/attrs.test.js new file mode 100644 index 0000000..48924dd --- /dev/null +++ b/pages/component-instance/attrs/attrs.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/attrs/attrs' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/attrs/attrs.uvue b/pages/component-instance/attrs/attrs.uvue new file mode 100644 index 0000000..e9c84db --- /dev/null +++ b/pages/component-instance/attrs/attrs.uvue @@ -0,0 +1,35 @@ + + + + + diff --git a/pages/component-instance/attrs/child.uvue b/pages/component-instance/attrs/child.uvue new file mode 100644 index 0000000..a4efe05 --- /dev/null +++ b/pages/component-instance/attrs/child.uvue @@ -0,0 +1,43 @@ + + + + + diff --git a/pages/component-instance/data/data.test.js b/pages/component-instance/data/data.test.js new file mode 100644 index 0000000..f3641ba --- /dev/null +++ b/pages/component-instance/data/data.test.js @@ -0,0 +1,26 @@ +const PAGE_PATH = '/pages/component-instance/data/data' + +describe('$data', () => { + let page + beforeAll(async () => { + page = await program.reLaunch(PAGE_PATH) + await page.waitFor(500) + }) + + + it('should data.val === 2', async () => { + const plusButton = await page.$('.plus') + await plusButton.tap() + + const val = await page.$('.val') + expect(await val.text()).toBe('2') + }); + + it('should data.val === 1', async () => { + const minusButton = await page.$('.minus') + await minusButton.tap() + + const val = await page.$('.val') + expect(await val.text()).toBe('1') + }) +}) diff --git a/pages/component-instance/data/data.uvue b/pages/component-instance/data/data.uvue new file mode 100644 index 0000000..bcdacc9 --- /dev/null +++ b/pages/component-instance/data/data.uvue @@ -0,0 +1,52 @@ + + + + + diff --git a/pages/component-instance/el/el.test.js b/pages/component-instance/el/el.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/el/el.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/el/el.uvue b/pages/component-instance/el/el.uvue new file mode 100644 index 0000000..b62d3f9 --- /dev/null +++ b/pages/component-instance/el/el.uvue @@ -0,0 +1,28 @@ + + + + + diff --git a/pages/component-instance/emit-function/child.uvue b/pages/component-instance/emit-function/child.uvue new file mode 100644 index 0000000..0be3711 --- /dev/null +++ b/pages/component-instance/emit-function/child.uvue @@ -0,0 +1,20 @@ + + + + + diff --git a/pages/component-instance/emit-function/emit-function.test.js b/pages/component-instance/emit-function/emit-function.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/emit-function/emit-function.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/emit-function/emit-function.uvue b/pages/component-instance/emit-function/emit-function.uvue new file mode 100644 index 0000000..f87c8c8 --- /dev/null +++ b/pages/component-instance/emit-function/emit-function.uvue @@ -0,0 +1,44 @@ + + + + + diff --git a/pages/component-instance/forceUpdate-function/forceUpdate-function.test.js b/pages/component-instance/forceUpdate-function/forceUpdate-function.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/forceUpdate-function/forceUpdate-function.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/forceUpdate-function/forceUpdate-function.uvue b/pages/component-instance/forceUpdate-function/forceUpdate-function.uvue new file mode 100644 index 0000000..f56e6b6 --- /dev/null +++ b/pages/component-instance/forceUpdate-function/forceUpdate-function.uvue @@ -0,0 +1,37 @@ + + + + + diff --git a/pages/component-instance/nextTick-function/nextTick-function.test.js b/pages/component-instance/nextTick-function/nextTick-function.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/nextTick-function/nextTick-function.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/nextTick-function/nextTick-function.uvue b/pages/component-instance/nextTick-function/nextTick-function.uvue new file mode 100644 index 0000000..777ce6d --- /dev/null +++ b/pages/component-instance/nextTick-function/nextTick-function.uvue @@ -0,0 +1,33 @@ + + + + + diff --git a/pages/component-instance/options/mixins.ts b/pages/component-instance/options/mixins.ts new file mode 100644 index 0000000..f2dd280 --- /dev/null +++ b/pages/component-instance/options/mixins.ts @@ -0,0 +1,12 @@ +export default { + data () { + return { + type: 'minix' + } + }, + methods: { + minixMethod () { + return "minixMethod" + } + } +} diff --git a/pages/component-instance/options/options.test.js b/pages/component-instance/options/options.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/options/options.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/options/options.uvue b/pages/component-instance/options/options.uvue new file mode 100644 index 0000000..a370cfd --- /dev/null +++ b/pages/component-instance/options/options.uvue @@ -0,0 +1,43 @@ + + + + + diff --git a/pages/component-instance/parent/child.uvue b/pages/component-instance/parent/child.uvue new file mode 100644 index 0000000..4cf9fc3 --- /dev/null +++ b/pages/component-instance/parent/child.uvue @@ -0,0 +1,27 @@ + + + + + diff --git a/pages/component-instance/parent/parent.test.js b/pages/component-instance/parent/parent.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/parent/parent.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/parent/parent.uvue b/pages/component-instance/parent/parent.uvue new file mode 100644 index 0000000..8aeaeb4 --- /dev/null +++ b/pages/component-instance/parent/parent.uvue @@ -0,0 +1,34 @@ + + + + + diff --git a/pages/component-instance/props/check-type.uvue b/pages/component-instance/props/check-type.uvue new file mode 100644 index 0000000..3de5bb9 --- /dev/null +++ b/pages/component-instance/props/check-type.uvue @@ -0,0 +1,87 @@ + + + + + diff --git a/pages/component-instance/props/props.test.js b/pages/component-instance/props/props.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/props/props.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/props/props.uvue b/pages/component-instance/props/props.uvue new file mode 100644 index 0000000..62b8371 --- /dev/null +++ b/pages/component-instance/props/props.uvue @@ -0,0 +1,48 @@ + + + + + diff --git a/pages/component-instance/props/simple.uvue b/pages/component-instance/props/simple.uvue new file mode 100644 index 0000000..6409672 --- /dev/null +++ b/pages/component-instance/props/simple.uvue @@ -0,0 +1,42 @@ + + + diff --git a/pages/component-instance/refs/child.uvue b/pages/component-instance/refs/child.uvue new file mode 100644 index 0000000..8d7768e --- /dev/null +++ b/pages/component-instance/refs/child.uvue @@ -0,0 +1,17 @@ + + + + + diff --git a/pages/component-instance/refs/refs.test.js b/pages/component-instance/refs/refs.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/refs/refs.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/refs/refs.uvue b/pages/component-instance/refs/refs.uvue new file mode 100644 index 0000000..21e2dcd --- /dev/null +++ b/pages/component-instance/refs/refs.uvue @@ -0,0 +1,31 @@ + + + + + diff --git a/pages/component-instance/root/root.test.js b/pages/component-instance/root/root.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/root/root.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/root/root.uvue b/pages/component-instance/root/root.uvue new file mode 100644 index 0000000..9ac10cb --- /dev/null +++ b/pages/component-instance/root/root.uvue @@ -0,0 +1,30 @@ + + + + + diff --git a/pages/component-instance/slots/slot.uvue b/pages/component-instance/slots/slot.uvue new file mode 100644 index 0000000..57764ae --- /dev/null +++ b/pages/component-instance/slots/slot.uvue @@ -0,0 +1,26 @@ + + + + + diff --git a/pages/component-instance/slots/slots.test.js b/pages/component-instance/slots/slots.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/slots/slots.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/slots/slots.uvue b/pages/component-instance/slots/slots.uvue new file mode 100644 index 0000000..bdb87ee --- /dev/null +++ b/pages/component-instance/slots/slots.uvue @@ -0,0 +1,30 @@ + + + + + diff --git a/pages/component-instance/watch-function/watch-function.test.js b/pages/component-instance/watch-function/watch-function.test.js new file mode 100644 index 0000000..921d4ec --- /dev/null +++ b/pages/component-instance/watch-function/watch-function.test.js @@ -0,0 +1,5 @@ +const PAGE_PATH = '/pages/component-instance/props/props' + +describe('$props', () => { + +}) diff --git a/pages/component-instance/watch-function/watch-function.uvue b/pages/component-instance/watch-function/watch-function.uvue new file mode 100644 index 0000000..9b9aee8 --- /dev/null +++ b/pages/component-instance/watch-function/watch-function.uvue @@ -0,0 +1,69 @@ + + + + + diff --git a/pages/index.uvue b/pages/index.uvue index 4d7162b..a1f0f34 100644 --- a/pages/index.uvue +++ b/pages/index.uvue @@ -6,8 +6,8 @@ - - {{page}} + + {{page.name}} @@ -24,7 +24,22 @@ id : string, name : string, open : boolean, - pages : string[] + pages : IListPageItem[] + } + + type IListPageItem = { + name: string + path: string + } + + function createPageItem (parent: string | null = null): (page: string) => IListPageItem { + return function (page: string): IListPageItem { + const routeName = page.replace(/\$/g, '').replace('()', '-function') + return { + name: page, + path: parent !== null ? `/pages/${parent}/${routeName}/${routeName}`: `/pages/${routeName}/${routeName}` + } as IListPageItem + } } export default { @@ -36,8 +51,8 @@ name: '生命周期', open: false, pages: [ - 'page-lifecycle', - ] + 'page-lifecycle' + ].map(createPageItem()) }, { id: 'directives', @@ -55,7 +70,7 @@ 'v-once', // 'v-memo', // 'v-cloak' - ] + ].map(createPageItem()) }, { id: 'state', @@ -67,13 +82,13 @@ 'computed', 'methods', 'watch' - ] + ].map(createPageItem('state')) }, { id: 'rendering', name: '渲染选项', open: false, - pages: ['template', 'render', 'slots'] + pages: ['template', 'render', 'slots'].map(createPageItem('rendering')) }, { id: 'component-instance', @@ -93,7 +108,7 @@ '$emit()', '$forceUpdate()', '$nextTick()' - ] + ].map(createPageItem('component-instance')) }, { id: 'composition', @@ -104,7 +119,7 @@ 'inject', 'mixins', 'extends' - ] + ].map(createPageItem('composition')) } ] as ListItem[] } @@ -145,9 +160,9 @@ // data: storageData // }) }, - goDetailPage(e : string) { + goDetailPage(e : IListPageItem) { uni.navigateTo({ - url: `/pages/${e}/${e}` + url: e.path }) }, getLifeCycleNum(): number { @@ -176,4 +191,4 @@ .arrow-down { transform: rotate(-135deg); } - \ No newline at end of file + -- GitLab