From 0f623c5fb618317b8813bf2e3690503a33a5f969 Mon Sep 17 00:00:00 2001 From: "yingfeng.ai" Date: Wed, 6 Nov 2024 18:09:19 +0800 Subject: [PATCH] =?UTF-8?q?vue=E5=AD=A6=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 学习VUE/hello_vue3/index.html | 1 + 学习VUE/hello_vue3/src/App.vue | 49 +++++++++--- .../hello_vue3/src/pages/01_props/Child.vue | 25 +++++++ .../hello_vue3/src/pages/01_props/Father.vue | 28 +++++++ .../src/pages/02_custom-event/Child.vue | 26 +++++++ .../src/pages/02_custom-event/Father.vue | 31 ++++++++ .../hello_vue3/src/pages/03_mitt/Child1.vue | 28 +++++++ .../hello_vue3/src/pages/03_mitt/Child2.vue | 34 +++++++++ .../hello_vue3/src/pages/03_mitt/Father.vue | 23 ++++++ .../src/pages/04_v-model/AtguiguInput.vue | 28 +++++++ .../hello_vue3/src/pages/04_v-model/Father.vue | 36 +++++++++ .../hello_vue3/src/pages/05_$attrs/Child.vue | 20 +++++ .../hello_vue3/src/pages/05_$attrs/Father.vue | 32 ++++++++ .../src/pages/05_$attrs/GrandChild.vue | 26 +++++++ .../src/pages/06_$refs-$parent/Child1.vue | 34 +++++++++ .../src/pages/06_$refs-$parent/Child2.vue | 26 +++++++ .../src/pages/06_$refs-$parent/Father.vue | 65 ++++++++++++++++ .../src/pages/07_provide-inject/Child.vue | 20 +++++ .../src/pages/07_provide-inject/Father.vue | 35 +++++++++ .../src/pages/07_provide-inject/GrandChild.vue | 24 ++++++ .../hello_vue3/src/pages/08_pinia/Father.vue | 17 +++++ .../hello_vue3/src/pages/09_slot/Father.vue | 52 +++++++++++++ 学习VUE/hello_vue3/src/pages/09_slot/Game.vue | 32 ++++++++ .../src/pages/09_slot_作用域插槽/Father.vue | 52 +++++++++++++ .../src/pages/09_slot_作用域插槽/Game.vue | 32 ++++++++ .../src/pages/09_slot_具名插槽/Category.vue | 21 ++++++ .../src/pages/09_slot_具名插槽/Father.vue | 71 ++++++++++++++++++ .../src/pages/09_slot_默认插槽/Category.vue | 27 +++++++ .../src/pages/09_slot_默认插槽/Father.vue | 48 ++++++++++++ 学习VUE/hello_vue3/src/router/index.ts | 74 +++++++++++-------- 学习VUE/hello_vue3/src/store/lovetalk.ts | 29 +++++--- 学习VUE/hello_vue3/笔记/store组合式写法.ts | 9 +++ 32 files changed, 1003 insertions(+), 52 deletions(-) create mode 100644 学习VUE/hello_vue3/src/pages/01_props/Child.vue create mode 100644 学习VUE/hello_vue3/src/pages/01_props/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/02_custom-event/Child.vue create mode 100644 学习VUE/hello_vue3/src/pages/02_custom-event/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/03_mitt/Child1.vue create mode 100644 学习VUE/hello_vue3/src/pages/03_mitt/Child2.vue create mode 100644 学习VUE/hello_vue3/src/pages/03_mitt/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/04_v-model/AtguiguInput.vue create mode 100644 学习VUE/hello_vue3/src/pages/04_v-model/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/05_$attrs/Child.vue create mode 100644 学习VUE/hello_vue3/src/pages/05_$attrs/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/05_$attrs/GrandChild.vue create mode 100644 学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child1.vue create mode 100644 学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child2.vue create mode 100644 学习VUE/hello_vue3/src/pages/06_$refs-$parent/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/07_provide-inject/Child.vue create mode 100644 学习VUE/hello_vue3/src/pages/07_provide-inject/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/07_provide-inject/GrandChild.vue create mode 100644 学习VUE/hello_vue3/src/pages/08_pinia/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot/Game.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Game.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Category.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Father.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Category.vue create mode 100644 学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Father.vue create mode 100644 学习VUE/hello_vue3/笔记/store组合式写法.ts diff --git a/学习VUE/hello_vue3/index.html b/学习VUE/hello_vue3/index.html index a888544..5834566 100644 --- a/学习VUE/hello_vue3/index.html +++ b/学习VUE/hello_vue3/index.html @@ -4,6 +4,7 @@ + Vite App diff --git a/学习VUE/hello_vue3/src/App.vue b/学习VUE/hello_vue3/src/App.vue index 2131d76..6ce8b45 100644 --- a/学习VUE/hello_vue3/src/App.vue +++ b/学习VUE/hello_vue3/src/App.vue @@ -1,16 +1,45 @@ - - + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/01_props/Child.vue b/学习VUE/hello_vue3/src/pages/01_props/Child.vue new file mode 100644 index 0000000..83415a8 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/01_props/Child.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/01_props/Father.vue b/学习VUE/hello_vue3/src/pages/01_props/Father.vue new file mode 100644 index 0000000..e457614 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/01_props/Father.vue @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/02_custom-event/Child.vue b/学习VUE/hello_vue3/src/pages/02_custom-event/Child.vue new file mode 100644 index 0000000..a75f17a --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/02_custom-event/Child.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/02_custom-event/Father.vue b/学习VUE/hello_vue3/src/pages/02_custom-event/Father.vue new file mode 100644 index 0000000..7cbcdec --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/02_custom-event/Father.vue @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/03_mitt/Child1.vue b/学习VUE/hello_vue3/src/pages/03_mitt/Child1.vue new file mode 100644 index 0000000..ebeb129 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/03_mitt/Child1.vue @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/03_mitt/Child2.vue b/学习VUE/hello_vue3/src/pages/03_mitt/Child2.vue new file mode 100644 index 0000000..739675a --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/03_mitt/Child2.vue @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/03_mitt/Father.vue b/学习VUE/hello_vue3/src/pages/03_mitt/Father.vue new file mode 100644 index 0000000..b8626c1 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/03_mitt/Father.vue @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/04_v-model/AtguiguInput.vue b/学习VUE/hello_vue3/src/pages/04_v-model/AtguiguInput.vue new file mode 100644 index 0000000..20b5089 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/04_v-model/AtguiguInput.vue @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/04_v-model/Father.vue b/学习VUE/hello_vue3/src/pages/04_v-model/Father.vue new file mode 100644 index 0000000..338c383 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/04_v-model/Father.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/05_$attrs/Child.vue b/学习VUE/hello_vue3/src/pages/05_$attrs/Child.vue new file mode 100644 index 0000000..021c663 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/05_$attrs/Child.vue @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/05_$attrs/Father.vue b/学习VUE/hello_vue3/src/pages/05_$attrs/Father.vue new file mode 100644 index 0000000..2836101 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/05_$attrs/Father.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/05_$attrs/GrandChild.vue b/学习VUE/hello_vue3/src/pages/05_$attrs/GrandChild.vue new file mode 100644 index 0000000..8dac159 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/05_$attrs/GrandChild.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child1.vue b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child1.vue new file mode 100644 index 0000000..d1b0b25 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child1.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child2.vue b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child2.vue new file mode 100644 index 0000000..a43ee22 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Child2.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Father.vue b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Father.vue new file mode 100644 index 0000000..9fd2b0f --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/06_$refs-$parent/Father.vue @@ -0,0 +1,65 @@ + + + + + + diff --git a/学习VUE/hello_vue3/src/pages/07_provide-inject/Child.vue b/学习VUE/hello_vue3/src/pages/07_provide-inject/Child.vue new file mode 100644 index 0000000..4fbb8ec --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/07_provide-inject/Child.vue @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/07_provide-inject/Father.vue b/学习VUE/hello_vue3/src/pages/07_provide-inject/Father.vue new file mode 100644 index 0000000..74b3c0d --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/07_provide-inject/Father.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/07_provide-inject/GrandChild.vue b/学习VUE/hello_vue3/src/pages/07_provide-inject/GrandChild.vue new file mode 100644 index 0000000..9fd6df9 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/07_provide-inject/GrandChild.vue @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/08_pinia/Father.vue b/学习VUE/hello_vue3/src/pages/08_pinia/Father.vue new file mode 100644 index 0000000..eb1477c --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/08_pinia/Father.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/学习VUE/hello_vue3/src/pages/09_slot/Father.vue b/学习VUE/hello_vue3/src/pages/09_slot/Father.vue new file mode 100644 index 0000000..45df70f --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot/Father.vue @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot/Game.vue b/学习VUE/hello_vue3/src/pages/09_slot/Game.vue new file mode 100644 index 0000000..f33cc43 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot/Game.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Father.vue b/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Father.vue new file mode 100644 index 0000000..45df70f --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Father.vue @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Game.vue b/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Game.vue new file mode 100644 index 0000000..f33cc43 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_作用域插槽/Game.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Category.vue b/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Category.vue new file mode 100644 index 0000000..1d67f16 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Category.vue @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Father.vue b/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Father.vue new file mode 100644 index 0000000..36c0d2c --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_具名插槽/Father.vue @@ -0,0 +1,71 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Category.vue b/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Category.vue new file mode 100644 index 0000000..ce25e02 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Category.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Father.vue b/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Father.vue new file mode 100644 index 0000000..dda1b56 --- /dev/null +++ b/学习VUE/hello_vue3/src/pages/09_slot_默认插槽/Father.vue @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/router/index.ts b/学习VUE/hello_vue3/src/router/index.ts index e6ada50..da9bc1c 100644 --- a/学习VUE/hello_vue3/src/router/index.ts +++ b/学习VUE/hello_vue3/src/router/index.ts @@ -1,42 +1,52 @@ -import {createRouter, createWebHistory} from 'vue-router' +import { createRouter, createWebHistory } from 'vue-router' +import Props from '@/pages/01_props/Father.vue' +import Event from '@/pages/02_custom-event/Father.vue' +import Bus from '@/pages/03_mitt/Father.vue' +import Model from '@/pages/04_v-model/Father.vue' +import AttrsListeners from '@/pages/05_$attrs/Father.vue' +import RefChildrenParent from '@/pages/06_$refs-$parent/Father.vue' +import ProvideInject from '@/pages/07_provide-inject/Father.vue' +import Pinia from '@/pages/08_pinia/Father.vue' +import Slot from '@/pages/09_slot/Father.vue' -import Home from '@/pages/Home.vue' -import News from '@/pages/News.vue' -import About from '@/pages/About.vue' -import Details from '@/pages/Details.vue' - -//创建路由器 -const router = createRouter({ - history: createWebHistory(), //路由器的工作模式 +export default createRouter({ + history: createWebHistory(), routes: [ { - name: 'home', - path: '/', - component: Home + path: '/props', + component: Props }, { - name: 'news', - path: '/news', - component: News, - children: [ - { - name: 'news-details', - path: 'details', // 注意:子路由的 path 不需要以 "/" 开头 - component: Details - } - ] + path: '/event', + component: Event }, { - name: 'about', - path: '/about', - component: About + path: '/mitt', + component: Bus }, { - path: '/news', - redirect: '/about', // 重定向 - } + path: '/model', + component: Model + }, + { + path: '/attrs', + component: AttrsListeners + }, + { + path: '/ref-parent', + component: RefChildrenParent + }, + { + path: '/provide-inject', + component: ProvideInject + }, + { + path: '/pinia', + component: Pinia + }, + { + path: '/slot', + component: Slot + }, ] -}) - -// 暴露出去 router -export default router \ No newline at end of file +}) \ No newline at end of file diff --git a/学习VUE/hello_vue3/src/store/lovetalk.ts b/学习VUE/hello_vue3/src/store/lovetalk.ts index df69c05..658f1d9 100644 --- a/学习VUE/hello_vue3/src/store/lovetalk.ts +++ b/学习VUE/hello_vue3/src/store/lovetalk.ts @@ -1,13 +1,22 @@ -import { defineStore } from 'pinia'; +import {defineStore} from 'pinia'; +import {reactive} from 'vue' -export const useTalkStore = defineStore('talk', { - state() { - // 获取 localStorage 中的数据,并判断是否存在 - const storedTalkList = localStorage.getItem('talkList'); +// 选项式 +// export const useTalkStore = defineStore('talk', { +// state() { +// // 获取 localStorage 中的数据,并判断是否存在 +// const storedTalkList = localStorage.getItem('talkList'); +// +// // 如果存储的 talkList 存在,则解析它,否则使用空数组 +// return { +// talkList: storedTalkList ? JSON.parse(storedTalkList) : [] +// }; +// } +// }); - // 如果存储的 talkList 存在,则解析它,否则使用空数组 - return { - talkList: storedTalkList ? JSON.parse(storedTalkList) : [] - }; - } +// 组合式 +export const useTalkStore = defineStore('talk', () => { + const storedTalkList = localStorage.getItem('talkList'); + const talkList = reactive(storedTalkList ? JSON.parse(storedTalkList) : []) + return {talkList} }); diff --git a/学习VUE/hello_vue3/笔记/store组合式写法.ts b/学习VUE/hello_vue3/笔记/store组合式写法.ts new file mode 100644 index 0000000..581cc39 --- /dev/null +++ b/学习VUE/hello_vue3/笔记/store组合式写法.ts @@ -0,0 +1,9 @@ +import {defineStore} from 'pinia'; +import {reactive} from 'vue' + +// 组合式 +export const useTalkStore = defineStore('talk', () => { + const storedTalkList = localStorage.getItem('talkList'); + const talkList = reactive(storedTalkList ? JSON.parse(storedTalkList) : []) + return {talkList} +});