diff --git a/package.json b/package.json index a491aa8..73eee66 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "dependencies": { "dayjs": "^1.11.13", "hooks": "file:", - "vue": "^3.5.13" + "vue": "^3.5.13", + "vue-router": "4" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", diff --git a/src/App.vue b/src/App.vue index ebb990f..6b95c77 100644 --- a/src/App.vue +++ b/src/App.vue @@ -12,13 +12,27 @@ const vClick: ObjectDirective = { }); } }; - - 我的是div的内容 + + + + + + + 我的是div的内容 + - diff --git a/src/components/SlideLayout.vue b/src/components/SlideLayout.vue new file mode 100644 index 0000000..7ac188a --- /dev/null +++ b/src/components/SlideLayout.vue @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts index 2425c0f..e3a485c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,8 @@ import { createApp } from 'vue' import './style.css' import App from './App.vue' +import router from './router' -createApp(App).mount('#app') +const app = createApp(App) +app.use(router) +app.mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..9cb4576 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,21 @@ +import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router' + +const routes: Array = [ + { + path: '/', + name: 'Introduction', + component: () => import('../views/IntroductionView.vue') + }, + { + path: '/history', + name: 'History', + component: () => import('../views/HistoryView.vue') + } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +export default router diff --git a/src/style.css b/src/style.css index bb131d6..c7f547c 100644 --- a/src/style.css +++ b/src/style.css @@ -13,6 +13,18 @@ -moz-osx-font-smoothing: grayscale; } +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body { + width: 100%; + height: 100%; + overflow: hidden; +} + a { font-weight: 500; color: #646cff; @@ -23,7 +35,6 @@ a:hover { } body { - margin: 0; display: flex; place-items: center; min-width: 320px; @@ -59,6 +70,9 @@ button:focus-visible { } #app { + width: 100%; + height: 100vh; + overflow: hidden; max-width: 1280px; margin: 0 auto; padding: 2rem; diff --git a/src/views/HistoryView.vue b/src/views/HistoryView.vue new file mode 100644 index 0000000..6e22cdf --- /dev/null +++ b/src/views/HistoryView.vue @@ -0,0 +1,138 @@ + + + + Hooks 的历史 + + + {{ item.date }} + + {{ item.title }} + {{ item.description }} + + + + + + + + + + diff --git a/src/views/IntroductionView.vue b/src/views/IntroductionView.vue new file mode 100644 index 0000000..a1faba4 --- /dev/null +++ b/src/views/IntroductionView.vue @@ -0,0 +1,107 @@ + + + + + VueHooks + 优雅的代码复用方案 + + + + 专业服务开发部 · 燕陇琪 · {{ formatDate() }} + + + + + + + + + diff --git a/yarn.lock b/yarn.lock index 50264e2..23dd2e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -333,6 +333,11 @@ de-indent "^1.0.2" he "^1.2.0" +"@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://mirrors.yuchat.top/repository/npmjs/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== + "@vue/language-core@2.2.0": version "2.2.0" resolved "https://mirrors.yuchat.top/repository/npmjs/@vue/language-core/-/language-core-2.2.0.tgz#e48c54584f889f78b120ce10a050dfb316c7fcdf" @@ -476,7 +481,8 @@ he@^1.2.0: "hooks@file:.": version "0.0.0" dependencies: - hooks "file:C:/Users/Administrator/AppData/Local/Yarn/Cache/v6/npm-hooks-0.0.0-02bdcb68-002e-4d83-9f65-7dd5aa63d929-1735441352086/node_modules/hooks" + dayjs "^1.11.13" + hooks "file:C:/Users/yanlongqi/AppData/Local/Yarn/Cache/v6/npm-hooks-0.0.0-3bade944-d2d2-4129-9022-13077f5d891c-1735875890338/node_modules/hooks" vue "^3.5.13" magic-string@^0.30.11: @@ -576,6 +582,13 @@ vscode-uri@^3.0.8: resolved "https://mirrors.yuchat.top/repository/npmjs/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== +vue-router@4: + version "4.5.0" + resolved "https://mirrors.yuchat.top/repository/npmjs/vue-router/-/vue-router-4.5.0.tgz#58fc5fe374e10b6018f910328f756c3dae081f14" + integrity sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w== + dependencies: + "@vue/devtools-api" "^6.6.4" + vue-tsc@^2.2.0: version "2.2.0" resolved "https://mirrors.yuchat.top/repository/npmjs/vue-tsc/-/vue-tsc-2.2.0.tgz#dd06c56636f760d7534b7a7a0f6669ba93c217b8"
{{ item.description }}