个人网站开发记录(六)三系统前端vite+js+antd

前言

这几天忙着放假(),然后三系统本身其实体量挺小的,所以在写这篇文章的时候我实际上已经开始我的四系统建立了....好吧这些都是题外话,我们先开始吧

正文

因为三系统实际上就只有一个功能,那就是通过手打单词来进行单词的记忆....所以我能讲的其实不是很多,不过还是遇到了一些值得记录的方法的

项目结构

└─ thirdsystem

   ├─ .gitignore

   ├─ .vscode

   │  └─ extensions.json

   ├─ index.html

   ├─ package-lock.json

   ├─ package.json

   ├─ public

   │  └─ vite.svg

   ├─ README.md

   ├─ src

   │  ├─ api

   │  │  └─ getword.js

   │  ├─ App.vue

   │  ├─ assets

   │  │  └─ vue.svg

   │  ├─ components

   │  │  ├─ chosewindow.vue

   │  │  ├─ countpage.vue

   │  │  └─ typePart.vue

   │  ├─ http

   │  │  ├─ newAxios.js

   │  │  └─ request.js

   │  ├─ main.js

   │  ├─ store

   │  │  └─ index.js

   │  ├─ style.css

   │  └─ view

   │     └─ main.vue

   └─ vite.config.js

动态 CSS 类名

说真的这个技术还是挺好用的,就像这样的:

 <div class="logosize" :class="store.state.start ? '' : 'blur'">

用一个vuex的变量来进行样式的变换,这样的话当我想根据某种条件来动态地改变一个元素的类名时,就可以使用这个指令。就像我的代码中,div 的类名 logosize 是固定的,但是类名 blur 则会根据 store.state.start 的值来决定是否应用。如果 store.state.start 是 true,则 blur 类名不会被添加;如果store.state.start 是 falseblur 类名会被添加到这个 div 元素上。这样,你就可以使用 CSS 来定义 blur 类的样式,从而达到当条件发生改变时,动态地改变这个 div 元素的样式。这样就能满足很多情况下的颜色和样式要求.

vue3计算属性的坑

在Vue 3中,计算属性在模板中被自动解包,也就是说在模板中可以直接访问它的值,而不是.ref对象。这就是在模板中可能没有看到.value这个属性,但仍然可以正常工作的原因。然而,在JavaScript或者TypeScript代码中,事情就有所不同了。在这些脚本块中,访问计算属性实际上会返回一个ComputedRef对象。要获取计算属性的值,就必须通过这个ComputedRef对象的.value属性。这是Vue 3的响应性系统的一部分,使得可以追踪和响应计算属性值的变化。换句话说,如果你在模板中,可以直接使用计算属性的名称获取其值,不需要附加.value。但在JavaScript或TypeScript代码块中,你需要使用.value来访问其值。

箭头函数的坑

这个纯属我自己的问题,原先没怎么注意,如果是这样写const getwordApi = (params) => post('http://localhost:5000/getword', params);就是直接返回的,在这个 `getwordApi` 函数中,由于箭头函数后面立即跟随的就是 `post` 方法的调用,所以 `post` 方法的返回值将直接作为 `getwordApi` 函数的返回值。这是箭头函数的简写形式,当箭头函数的函数体只有一条语句,且该语句的结果就是函数的返回值时,可以省略花括号和 `return` 关键字。这本该是很快就能想到的事情毕竟箭头函数是这样的....

服务器部署的坑

其实很简单,除了设置hash模式,还要记得在配置文件里加一个base:/就完事了,不然进入页面会有问题

键盘事件

简单来说就是这个

<div @keyup="handleKeyPress" tabindex="0">
onMounted(() => {
  document.addEventListener("keyup", handleKeyPress);
});
onBeforeUnmount(() => {
  document.removeEventListener("keyup", handleKeyPress);
});

简单来书就是在 HTML 代码中,<div @keyup="handleKeyPress" tabindex="0"> 在这个 div 元素上注册了一个 'keyup' 事件处理器。当用户在这个元素上释放按键时,就会用 handleKeyPress 这个函数。tabindex="0" 是将这个 div 元素设置为可获取焦点的。默认情况下,HTML div 元素是不能获取焦点的,添加 tabindex="0" 之后,这个 div 元素可以通过按 Tab 键来获取焦点。然后在 Vue 代码中:onMounted 是一个生命周期钩子函数,它会在这个 Vue 组件被挂载(即插入到 DOM 中)之后被调用。在这个函数里,我们添加了一个事件监听器 document.addEventListener("keyup", handleKeyPress); 到 document 上。这样,无论焦点在页面中的任何地方,只要用户释放按键,都会调用 handleKeyPress 这个函数。onBeforeUnmount 同样是一个生命周期钩子函数,它会在这个 Vue 组件即将被卸载(从 DOM 移除)前被调用。在这个函数里,我们移除了在 document 上的事件监听器 document.removeEventListener("keyup", handleKeyPress);。这是一个很重要的步骤,因为如果我们不移除这个监听器,即使组件被卸载,这个监听器也仍然会存在,会导致潜在的内存泄露问题。

结语

再接再励,继续肝四系统

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值