avatar
文章
61
标签
27
分类
11

主页
标签
分类
归档
关于我
面试题
liang yong gang
搜索
主页
标签
分类
归档
关于我
面试题

liang yong gang

vite判断环境
发表于2023-12-12|更新于2025-10-31|vue|vite
Vite 是一个现代化的前端构建工具,它提供了内置的环境变量来辨别当前环境是生产环境还是开发环境。在 Vite 中,可以通过检查 import.meta.env 对象来获取当前环境的信息。 import.meta.env 对象包含了一些常用的环境变量,其中最重要的是 MODE 变量。MODE 变量表示当前的构建模式,可以是 development(开发模式)或 production(生产模式)。 要判断当前环境是否为生产环境,可以通过以下方式: 12345if (import.meta.env.MODE === 'production') {// 生产环境逻辑} else {// 开发环境逻辑} 在上述代码中,我们通过检查 import.meta.env.MODE 的值来确定当前环境。如果 MODE 的值为 ‘production’,则表示当前是生产环境;否则,表示当前是开发环境。 除了 MODE 变量,import.meta.env 对象还提供了其他一些有用的环境变量,例如: BASE_URL:当前应用的基础 URL。DEV ...
pc端要做一个切换账号的功能?
发表于2023-11-20|更新于2025-10-31|业务实现|业务实现
背景:因为老板有两个手机号,这两个手机号在系统中的权限不一样,所以产品考虑给老板做一个切换账号的功能。说实话这个功能在pc端可是不常见啊。不过这个功能不怎么复杂。 我简单记录一下这个功能是怎么实现的。 我们系统的token是放在cookie中的,为什么放这儿,是因为cookie可以跨子域,靠这个功能我们实现了单点登录。 实现思路:1.我需要往cookie再存一个值accountTokenList来存放多个账号的token。2.每当登录账号是我往accountTokenList的首位塞一个对象,该对象有phone、token等属性。3.点击切换账号的列表时,把accountTokenList中对应账号的token拿出来存到cookie的token中。4.等账号退出时,再把accountTokenList中对应的对象清除。 带来一个问题:当同时打开多个页面或者多个系统时,我在页面A中切了账号,由账号1切换为账号2,然后又切换到B页面,这个时候B页面展示的数据还是之前账号1查出的数据(系统右上角展示的登录用户还是账号1),但是cookie里存的token已经修改为账号2的,再点击查询按钮 ...
ant-design-vue的admin-pro项目是怎么做权限控制的
发表于2023-11-17|更新于2025-10-31|vue|antd
公司的后台管理系统是基于ant-design-vue的vip收费版搭建的项目。下载地址是https://store.antdv.com/items/admin-pro, 收费版和免费版的区别是收费版用的vue3 ts开发的,而免费版用的是vue2开发的。 项目初始化后是怎么创建页面组件(路由)的,权限控制又是怎么做的?我们的项目基于pro-vip做了一些改动,但是架子跟pro-vip是基本差不多的。 在router.beforeEach中获取用户信息及权限信息,并将(路由)权限存到userStore里,下次路由跳转判断userStore中有权限信息就不重新获取用户信息及权限信息了 12345678910111213141516router.beforeEach(async to => { //.... // 判断userStore中有allowRouters,直接返回true if (userStore.allowRouters && userStore.allowRouters.length > 0) { return tr ...
a-table搜索表格数据但不影响表格的数据选中,怎么做?
发表于2023-11-16|更新于2025-10-31|vue|antd
场景:表格数据勾选了某条数据或某几条数据,再通过搜索框搜索数据,此时界面上看不到刚才已勾选的数据,但是点击提交时却需要提交所有刚刚勾选的数据。搜索出来的数据勾选或取消勾选,当重新搜索或重置搜索时,勾选不会受影响。 这就需要做一些特殊操作,不能直接把selectedRowKeys赋值给选中的keys,具体应该怎么处理,请看下文。 12345678910111213<a-table @change="handleTableChange" :row-selection="{ selectedRowKeys: data.selectedRowKeys, onChange: onSelectChange, getCheckboxProps: checkboxPropsFn, }" :loading="data.loading" :columns="data.columns" :data-source="data.dataList" :pag ...
a-tree右侧的checkbox
发表于2023-11-08|更新于2025-10-31|vue|antd
业务场景中,分配职责权限,职责权限是树的结构,需求是树的左侧为新勾选的职责,数的右侧为用户的角色带的职责。如图所示。树用的是ant-design-vue的a-tree,该组件默认是没有右侧的checkbox的,但是它提供的插槽可供开发人员自定义树中每个节点的展示形式。所以我们可以通过插槽的形式自定义树的节点。该需求的难点是右侧checkbox的选中时,实现父级的全选与半选。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<a-input v-model:value="data.searchValue" placeholder="权限名称" style="width: 200px; margin: 8px 0" :maxlength="20" @change="searchFn"> <template #suffi ...
gitignore修改了但不生效
发表于2023-09-18|更新于2025-10-31|git|git
gitignore修改了但不生效,一般是由于缓存导致的,可以尝试清除缓存并重新提交 123git rm -r --cached .git add .git commit -m "清除 Git 缓存并重新提交"
github推送代码由于网络原因经常失败的解决办法
发表于2023-08-31|更新于2025-10-31|git|git
github是全球最大的代码托管平台,但是由于墙的原因,在国内访问经常会有问题,虽然国内也有平替比如gitee,但是说实话比github还是差点意思。 最近发现github推送代码总是失败,查看错误日志一般都是由于网络的原因。 于是各种切换网络,使用各种梯子,但总是不能完美解决问题。 今天实在是忍不了,好好搜了一下解决方法。原来可以用ssh的方式解决这个问题。(原先我下载代码一般习惯用http的方式,这下发现它的弊端了。)下面介绍一下用ssh克隆以及推送代码的方法: 1.创建ssh密钥本机是mac电脑,使用ssh命令生成公钥私钥 1ssh-keygen -t rsa -C "公司电脑" -t 指定要创建的密钥类型为rsa-C 注释 敲了该命令会出现 Enter file in which to save the key (/Users/用户名/.ssh/id_rsa):让输入密钥文件名的提示,可以直接回车,默认生成名为 id_rsa 及 id_rsa.pub 的私钥及公钥。 再次出现Enter passphrase (empty for no passphras ...
修改Butterfly主题的一些源码,定制样式
发表于2023-04-18|更新于2025-10-31|进阶|hexo
修改了一些butterfly主题的源码 1.修改posts页面不显示文章的分类的问题发现posts文章页面顶部不显示文章的标签(tags),故阅读了修改了butterfly的相关源码,还提了一个pr给作者,经沟通作者说他有写tags,但是按照设计稿,tags在页面的底部展示。闹了个乌龙。不过我把这个修改放到我的项目里了,个人认为tags放顶部合适。修改的文件目录为 themes/butterfly/layout/includes/header/post-info.pug 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 ...
用vue3 vite搭建一个项目
发表于2023-04-12|更新于2025-10-31|vue|vue
1.搭建项目按照vue官网执行命令 1npm init vue@latest 这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。 2.安装lessless-loader貌似不必须 3.安装postcss-px-to-viewport自动转化px为vw并新建配置文件对其配置发现报了个警告:postcss-px-to-viewport: postcss.plugin was deprecated.又重新安装了升级版postcss-px-to-viewport-8-plugin,该配置文件同postcss-px-to-viewport的配置 4.安装vant发现postcss-px-to-viewport连vant的px也转了,导致vant的样式被压扁了。于是修改其配置,判断是vant文件viewport就用375的宽度 12345678910111213141516// postcss.config.jsmodule.exports = { plugins: { "postcss-px-to-viewport-8-plu ...
git推代码报错了
发表于2023-04-11|更新于2025-10-31|git|git
别人往我的分支上合并了代码,我在不清楚的情况下直接提交,并推送,git报错,也无法拉取代码了。错误信息如下 12345678910111213hint: You have divergent branches and need to specify how to reconcile them.hint: You can do so by running one of the following commands sometime beforehint: your next pull:hint: hint: git config pull.rebase false # mergehint: git config pull.rebase true # rebasehint: git config pull.ff only # fast-forward onlyhint: hint: You can replace "git config" with "git config --global" to set a defau ...
1234…7
avatar
claus liang
个人博客网站
文章
61
标签
27
分类
11
Follow Me
公告
This is my Blog
最新文章
variableTextarea可插入变量的文本框2025-10-30
sortablejs实现拖拽功能2025-10-29
node基础知识2025-08-08
canvas2025-07-18
html基础入门2025-07-15
分类
  • git6
  • h56
  • harmony6
  • node1
  • vue12
  • 业务实现1
  • 前端得懂的运维技能2
  • 基础13
标签
vite webpack 诗歌 linux 数据结构 微信小程序 消抖节流 harmony 基础 vue hexo canvas typescript npm 图片 git 业务实现 微前端 面试 antd h5 element 支付 markdown node gulp vscode
归档
  • 十月 20252
  • 八月 20251
  • 七月 20252
  • 五月 20252
  • 三月 20251
  • 一月 20251
  • 十二月 20242
  • 十一月 20241
网站资讯
文章数目 :
61
本站总字数 :
67.2k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2019 - 2025 By claus liang
框架 Hexo|主题 Butterfly
京ICP备18012831号 | 去我的主页liangyonggang.com
搜索
数据库加载中