diff --git a/docs/public/2024-08-05_16-06-48.png b/docs/public/2024-08-05_16-06-48.png new file mode 100644 index 0000000..b79fe06 Binary files /dev/null and b/docs/public/2024-08-05_16-06-48.png differ diff --git "a/docs/view/problem/Vue3\346\220\255\345\273\272\350\277\207\347\250\213\347\232\204\345\277\203\345\276\227.md" "b/docs/view/problem/Vue3\346\220\255\345\273\272\350\277\207\347\250\213\347\232\204\345\277\203\345\276\227.md" new file mode 100644 index 0000000..c15e8d4 --- /dev/null +++ "b/docs/view/problem/Vue3\346\220\255\345\273\272\350\277\207\347\250\213\347\232\204\345\277\203\345\276\227.md" @@ -0,0 +1,132 @@ +--- +date: 2024-08-05 +--- + +# Vue3 从 0 - 1 搭建后台的心得 + +刚开始搭建的时候感觉没有什么东西,因为用到了脚手架,就感觉很快就完成了,然后处理了一些 `env` 一些配置,紧接着就引入了组件款,我采用的是 `element-plus` 组件库,这个基本没什么问题,按照正常的来就可以了 ,问题就是在登录的时候使用到了表单,路由模式使用的 `hash` 刚开始的时候想着应该是路由模式的原因,换了路由模式后,确实好了,最后也没有多想,重新走流程的时候发现这个问题还有,然后才进行了深究等等一些问题,如下: + +## 页面刷新并且URL上面多了一个问号 + +当 form 表单中提交的时候,输入数据按下回车键,或者说提交的时候,页面会刷新,并在url上面多出一个问号,导致页面错误 + + + +解决方案: + +**在el-form上面加上@submit.native.prevent** + +原因分析: form 表单提交时,在该输入框中按下回车默认是提交该表单。我们需要阻止这一默认行为。 + +```html + +
+ + +
+
+ + +
+ +
+``` + +## 面包屑跳转侧边栏激活颜色变动 + +第二个问题是,我在写面包屑的时候发现点击上一级的时候,跳转了,但是侧边栏没有进行跳转 + +在做一个后台管理系统的时候,发现了element plus文档中的面包屑的使用方式,觉得还挺不错的,准备拿来用,发现可以与 vue 的 route 结合使用。 + +### 1. 编写面包屑 + +代码如下: + +```vue + + + + + + + + + +``` + +watch 是用来路由改变的监听器,通过动态改变 levelList 来改变每个页面的面包屑显示 + +3、适配路由 + +我们需要实现的是,点击面包屑,路由会跳转到相应页面,我们通过绑定的:to已经完成了,但是我们还需要左侧的菜单栏跳转到相应的位置 + +我的左侧菜单路由单独写了一个 vue,这里直接给出代码,核心逻辑就是使用 ** onBeforeRouteUpdate** 方法在每次路由改变的时候进行监听,将el-menu 的 default-active 更改成我们面包屑点击的目标 url + +参考的文章 + +```js + onBeforeRouteUpdate(to => { + curPath.value = to.path + }); +```