仓库链接[[前端了解/仿知乎, 掘金vue3项目/_resources/评论组件/3cc93b50abce1b169da3d99c0ffa751a_MD5.jpeg|Open: Pasted image 20250922101620.png]]![[前端了解/仿知乎, 掘金vue3项目/_resources/评论组件/3cc93b50abce1b169da3d99c0ffa751a_MD5.jpeg]]
评论CommentList
commentPost, 发表评论的文本框加按钮
发布图片CommentImage
图片链接CommentImgUrl
发布帖子, 添加与父组件的响应事件 – postCommentFinish
评论列表CommentListItem
每发表一个新评论, 就把后端返回的数据(回复评论下的所有评论) 中最后一个数添加到父级评论数组中 postCommentFinish
一级评论直接把评论列表更新为后端返回的数据
二级评论添加到评论列表的子级中
处理 ...
借助element的图片预览组件
功能
当点击点击遮罩层时, 关闭 preview hide-on-click-modal
预览图片时, 关闭页面的鼠标滚轮 stopScroll
可以在图片预览处切换查看的图片 imageList
基础封装1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556<script setup>import { ref } from 'vue'const props = defineProps({ imageList: { type: Array, },})//开始预览的const previewImageIndex = ref(null)//关闭图片预览const closeImgViewer = () => { startScroll() previewImageIndex. ...
学三件套时, .学长分享的好用工具, 当时有许多看不懂(现在也是).避免以后遗忘, 把它搬到这里来
有些东西这里不方便分享, 留个坐标, 只有我自己能看文件夹位置 "D:\front\前端学习.md"
分享
❗ 注:还是按自己学习主线走,大部分只是闲下来拿来玩玩不要太投入了哈哈,这里仅作一个分享
其实很多我也没咋用过,学会了浇浇我♿
更多的平时可以多逛逛 掘金社区 或者 b站
你可能会需要的谷歌邮箱
这个注册比较看运气,而且需梯子,不过能有一个的话最好了
2025 Gmail注册教程|跳过+86手机号验证,0失败保姆级注册方法!适用国内用户_哔哩哔哩_bilibili
沉浸式翻译
一键自动翻译网页,好像需要有谷歌账号
沉浸式翻译 - 双语对照网页翻译插件 | PDF翻译 | 视频字幕翻译
常用技能学习learn git branching
用来学习git基础操作(我也好多不会额啊啊啊)
Learn Git Branching
lodash
现代JS工具函数库,网上很多项目都会接触这个库的函数,在跟着做项目时如果有引用的可以来这里找
Lodash 简介 ...
位置: src下的router文件
安装和设置路由导入mian.js, , 并使用 app.use(router)
12345678910111213141516import{createRouter, createWebHistory,createWebHashHistory} from 'vue-router'const routes = [ { path: '/', component: () => import ("../views/index.vue") },]const router = createRouter({ history: createWebHistory(), // history: createWebHashHistory(), routes})export default router
配置路径别名打开vite.config.js文件导入 import path from ...
easybbs
未读前端路由傻傻分不清?route和router的区别,看完这篇别再搞混了!一、前言:为什么这俩玩意儿容易搞混?刚学前端路由时,我也被route和router搞得头晕眼花,面试还被问:”你能说说$route和$router的区别吗?” 我支支吾吾半天,面试官的表情逐渐凝固… 😅
今天,我们就来彻底搞懂这俩兄弟,让你以后再也不怕面试官的灵魂拷问!
二、一句话总结router(路由器) :是管理路由的老大,负责整个路由的跳转、拦截、传参等。route(路由信息) :是当前激活的路由对象,存储当前页面的路径、参数、查询参数等信息。
举个栗子 🌰:
router 就像快递公司的调度中心,决定包裹(页面)怎么配送。route 就像你手里的快递单,记录当前包裹(页面)的信息(地址、收件人、订单号等)。
三、代码实战:Vue里的route和router1. router(Vue Router实例)router是全局路由管理器,负责跳转、拦截、动态路由等操作。
123456789101112131415// 在Vue组件里使用export default { methods: { ...
定义全局变量在 main.ts 里定义全局变量
12345app.config.globalProperties.globalInfo = { bodyWidth: 1300,}
在组件中引用全局变量
123456789101112131415161718<template> <div class="header"> <div class="header-content" :style="{width: proxy.globalInfo.bodyWidth + 'px'}" > </div></div></template><script setup>import {ref, getCurrentInstance} from 'vue'const {proxy} = getCurrentInstance() ...
前言2025-9 原版链接仓库链接
一些东西按照自己的理解写了一下, 最后实现的功能暂时没什么问题
组件库 : element
基础表单封装作用 : 表单的壳子, 实现标题和最后 “登录/注册/重置表单”的渲染部分
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990<script setup>const props = defineProps({ show: { type: Boolean, default: true, }, title: { type: String, default: '标题', }, showClose: { type: B ...
参考资料pinia的使用(原链接)Pinia支持compositionApi同时也兼容optionsApi(this指向)Pinia可以采用多个store,store之间可以互相调用(扁平化),不用担心命名冲突问题
Pinia基本使用组合式 与 选项式 写法
123456789101112131415161718192021222324252627282930313233343536import {defineStore} from '../pinia/store'import {ref, computed} from 'vue'export const useCounterStore = defineStore('counter', ()=>{ const count = ref(0) const double = computed(()=>{ return count.value * 2 }) const ...









