<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a4867的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a4867</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a4867]]></copyright><item><title><![CDATA[详细的Whistle代理工具解决前端跨域问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/147249787</link><guid>https://blog.youkuaiyun.com/a4867/article/details/147249787</guid><author>a4867</author><pubDate>Tue, 15 Apr 2025 14:51:08 +0800</pubDate><description><![CDATA[主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应，也可以作为HTTP代理服务器使用，不同于Fiddler通过断点修改请求响应的方式，whistle采用的是类似配置系统hosts的方式，一切操作都可以通过配置实现，支持域名、路径、正则表达式、通配符、通配路径等多种。(读音[ˈwɪsəl]，拼音[wēisǒu])基于Node实现的跨平台web调试代理工具，类似的工具有Windows平台上的。如果需要抓https的包，需要安装一下证书。最后一定要记得应用选项！，且可以通过Node模块。]]></description><category></category></item><item><title><![CDATA[Prism行数不生效/错乱问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/145993394</link><guid>https://blog.youkuaiyun.com/a4867/article/details/145993394</guid><author>a4867</author><pubDate>Mon, 03 Mar 2025 17:06:28 +0800</pubDate><description><![CDATA[最后发现是因为pre和code没有写在一行(中间存在空格/回车)导致的。今天使用Prism代码高亮工具，发现样式错乱，或者不生效。]]></description><category></category></item><item><title><![CDATA[Echart--legend不生效问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/143238737</link><guid>https://blog.youkuaiyun.com/a4867/article/details/143238737</guid><author>a4867</author><pubDate>Fri, 25 Oct 2024 16:57:19 +0800</pubDate><description><![CDATA[最近项目要用到echart，但在配置过程中发现echart开启了也不生效。排除后发现，是series每个线要有一个name与之对应。legend是echart中用于提示的属性，如下图。然后再修改修改样式就可以正常显示了。]]></description><category></category></item><item><title><![CDATA[vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/143039250</link><guid>https://blog.youkuaiyun.com/a4867/article/details/143039250</guid><author>a4867</author><pubDate>Fri, 18 Oct 2024 11:02:01 +0800</pubDate><description><![CDATA[接着将is-active的activeIndex值和传过来的path判断，判断它们是否相等，如果相等就给focus。虽然可以直接让el-menu-item:focus为白色能解决这个问题，但是我就是想要有颜色哈哈哈，有些执着。首先，先给menu-item设置一个v-bind:class方法，来动态改变颜色。如下，手动修改url时，is-active和focus颜色不同步。在实习，给了个需求做个新的ui界面，遇到了一个非常烦人的问题。important，否则是不生效的！研究了很久之后找到了解决办法。]]></description><category></category></item><item><title><![CDATA[Vue3使用element plus时el-menu导航选中后刷新页面及修改URL无法保持当前选中状态问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/142991306</link><guid>https://blog.youkuaiyun.com/a4867/article/details/142991306</guid><author>a4867</author><pubDate>Wed, 16 Oct 2024 21:04:22 +0800</pubDate><description><![CDATA[因为刷新页面后el-menu的:default-active="activeIndex"被刷新，无法记录所以导致高亮部分无法保持选择状态。在使用element plus的el-menu菜单导航时，发现选中后刷新高亮部分无法保持当前选择状态。然后在onMouted 或者 created构造获取一次即可 （注意 vue3的语法糖setup）我用了页面监听 watch，当监听到route.path改变时，activeIndex改变。localStorage或者sessionStorage来持久化储存。]]></description><category></category></item><item><title><![CDATA[前端常见算法题集]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/142580537</link><guid>https://blog.youkuaiyun.com/a4867/article/details/142580537</guid><author>a4867</author><pubDate>Thu, 26 Sep 2024 23:58:40 +0800</pubDate><description><![CDATA[很久没练算法了，打算接下来一段时间每天坚持写题和写题解这是一篇前端常用算法题集，题目从从简到难，编程语言主要为JavaScript，顺便练习和熟记js的各种方法...]]></description><category></category></item><item><title><![CDATA[Uniapp的alertDialog返回值+async/await处理确定/取消问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/142216626</link><guid>https://blog.youkuaiyun.com/a4867/article/details/142216626</guid><author>a4867</author><pubDate>Fri, 13 Sep 2024 17:42:38 +0800</pubDate><description><![CDATA[方法可能并没有返回一个 Promise，或者即使它返回了一个 Promise，这个 Promise 可能是在对话框关闭而不是打开时才 resolve。所以需要设置一个confirmed来接收alertDialog.value.open()的返回值。发现alertDialog和下面的处理同步进行了，没有等待alaertDialog处理完才进行。今天在使用uniui的alertDialog时，想添加一个确定/取消的警告框时。函数中的其他逻辑在对话框打开的同时就继续执行了。关键字虽然被用来等待。]]></description><category></category></item><item><title><![CDATA[Vue3使用Uni-ui的popup弹出层组件]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/142028414</link><guid>https://blog.youkuaiyun.com/a4867/article/details/142028414</guid><author>a4867</author><pubDate>Sun, 08 Sep 2024 16:21:31 +0800</pubDate><description><![CDATA[除了文档中要求的aleterDialog外，还得利用v-if设置一个isDialog判断。由于uni-ui中有些组件文档的基于vue2编写的，比如popup组件。下面是vue3的写法。]]></description><category></category></item><item><title><![CDATA[Uniapp基于uni拦截器+Promise的请求函数封装]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/142005086</link><guid>https://blog.youkuaiyun.com/a4867/article/details/142005086</guid><author>a4867</author><pubDate>Sat, 07 Sep 2024 21:53:10 +0800</pubDate><description><![CDATA[最近在学Uniapp，到封装请求的时候本来还想用axios，但是看到一些教学视频有更简单的方法，最后附上TS的写法，感觉其实差不多，只是用TS语法进行了一下泛型的判断。但是他们是用TS写的，还没学到TS，我就把JS写了，最终也是请求成功。基于uni的拦截器和Promise封装的请求函数。组件引入http方法进行请求。]]></description><category></category></item><item><title><![CDATA[Vue3中cookie的操作方法]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/141792072</link><guid>https://blog.youkuaiyun.com/a4867/article/details/141792072</guid><author>a4867</author><pubDate>Sun, 01 Sep 2024 23:33:40 +0800</pubDate><description><![CDATA[设置cookies时，传递的值不能是一个对象，必须将对象转换为字符串(JSON.stringify），但是获取cookies时，返回的是一个对象，可以直接调用对象的属性值。返回的是boolean(true or false)先npm下载vue3-cookie组件。再引入到main.js中。判断cookie是否存在。如:设置cookie。]]></description><category></category></item><item><title><![CDATA[【已解决】Request failed with status code 500，Node接收json中间件，request entity too large问题...]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/141538766</link><guid>https://blog.youkuaiyun.com/a4867/article/details/141538766</guid><author>a4867</author><pubDate>Mon, 26 Aug 2024 03:51:29 +0800</pubDate><description><![CDATA[可以给提高文件大小的限制，不仅仅可以提高application/x-www-form-urlencoded的，还可以提高json的，由于我一般就这里图片上传需要的较大，于是我就提高了json形式的。然后我就觉得剩下的应该是后端的问题了，它一直提示avatar is required，那么肯定是这个参数没接收到-->说明后端还是以x-www-form-urlencoded形式接收的参数。请求头确实是json形式的了，而且状态码还为200，麻了。又又又又来个问题....这个应该是数据库的。]]></description><category></category></item><item><title><![CDATA[vue|Node 上传图片图片无法正常显示(关于文件上传req.file的问题)]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/141533942</link><guid>https://blog.youkuaiyun.com/a4867/article/details/141533942</guid><author>a4867</author><pubDate>Sun, 25 Aug 2024 20:07:28 +0800</pubDate><description><![CDATA[所以将req.file.fieldname改为filename即可。做了一个页面，涉及上传图片的功能，但是发现上传后图片无法正常显示。因为图片地址，所以想问题应该是在后端和数据库连接这块有问题。fieldname是文件名，filename才是图片名！检查后端相关部分代码，发现是这里字符串拼接的问题。打印的图片信息和数据库中的对不上。打印以下req.file这个对象。]]></description><category></category></item><item><title><![CDATA[Nodejs非响应return问题导致的Cannot set headers after they are sent to the client。]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/141106375</link><guid>https://blog.youkuaiyun.com/a4867/article/details/141106375</guid><author>a4867</author><pubDate>Sun, 11 Aug 2024 15:43:34 +0800</pubDate><description><![CDATA[今天学习Nodejs写接口时遇到一个问题，在写用户注册接口模块时如果插入相同的username后(数据库表中设置username为unique），逻辑应该是提示存在相同用户名，但实现该操作后node服务器直接挂了。在网上找该问题的方法，基本都是说:服务器要在每次响应后添加return，避免多余响应。看了看和调试了会儿代码，发现是两个db.query没写到一起导致的错误。吧下面注册用户的db.query要写入查找相同用户名的中。但是我每个响应都是加了return的，百思不得其解。]]></description><category></category></item><item><title><![CDATA[Vant4组件库样式不生效问题]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/141028851</link><guid>https://blog.youkuaiyun.com/a4867/article/details/141028851</guid><author>a4867</author><pubDate>Thu, 08 Aug 2024 15:46:21 +0800</pubDate><description><![CDATA[import 'vant/es/toast/style'，其他组件不生效也是同理，import 'vant/es/***/style'查询后得知再按需导入一下对应组件的样式即可。今天使用vant4组件库发现样式不生效。]]></description><category></category></item><item><title><![CDATA[加入购物车-数组框组件封装(v-model父传子，子传父$emit的使用，e.target.value，isNAN方法)]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139457045</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139457045</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:33:33 +0800</pubDate><description><![CDATA[利用e.target.value获取输入框的值，然后声明一个num，利用+转为number型。首先，在父组件中声明变量count（初始值），如何利用v-model传值给子组件。减和加的点击事件逻辑差不多，需要注意的就是减到1的时候要return无法继续减了。要注意的是，父组件中的v-model不要写成动态传参了！input框的change事件要考虑两个，一个是非数字，一个是小于1。如果满足以上任一条件，吧输入框的值恢复到原来的value即可。分别问减事件，input框内的change事件，加事件。]]></description><category></category></item><item><title><![CDATA[商品详情页（computed和methods调用的区别）]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139457036</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139457036</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:32:21 +0800</pubDate><description><![CDATA[2.如果有多个请求方法，可以分别在methods中写，然后在created中统一调用。3.computed的调用不需要()，methods中的是方法，需要（）！1.computed中如果要写方法的话，要return。其他的就是要注意头像如果没有的话给个默认图像。]]></description><category></category></item><item><title><![CDATA[继上篇学习的“对象的可选链操作符”]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139457021</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139457021</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:31:45 +0800</pubDate><description><![CDATA[省流:这里的问号是一个叫可选链操作符的东西，简单来说就是如果对象中有?后的参数就传，没有就不传，不会报错。百度错误，发现这个是条件语句，作用是访问属性是否存在于该对象上。往下翻发现确实有的有children，有的没有。不过我不太懂框出来的？的作用，为什么不能直接.访问呢。我将问号删掉后发生以下报错，但是服务还是正常的。继上篇获取到数据后的渲染。]]></description><category></category></item><item><title><![CDATA[搜索页列表（跳转传参和动态传参接收query,params）]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139456968</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139456968</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:27:59 +0800</pubDate><description><![CDATA[最后渲染到页面即可，在value中可以动态渲染一下，没值的时候渲染“搜索商品”，而那边是多参数，传的是对象过来，这边也一定要用对象来接收！需要注意的是，注意传值的形式，如果（{}）接收的是对象，传值也要是对象。跳转传参的查询方法是 this.$route.query.参数名。动态传参的查询方法是this.$route.params.参数名。首先在api下新建个produce.js，封装一下请求方法。比如下列错误案例中，传值为非对象，在views中。接下来就是分类页，还是先写api接口。]]></description><category></category></item><item><title><![CDATA[搜索历史管理(相关css的过长省略方法，数组方法indexof，splice，unshift）]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139456949</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139456949</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:23:30 +0800</pubDate><description><![CDATA[做完了历史记录添加和清除后，接下来要做的是将历史记录保存在本地存储localStorage中。存储和清除可以归在一起--->设置 如果要清除直接传空数组过来，如果要设置传一个数组来即可。不存在会返回-1，如果不等于-1也就是存在的意思，存在需要用。goSearch最后还需要添加一个带参跳转，跳转到搜索商品页。，而且要判断是否存在，不存在给空（为后面初始化赋值做准备）goSearch是需要传参的，根据要找的值，利用。需要了解的是当搜索记录的字数过多要记得隐藏！（不存在的话也是直接添加即可）]]></description><category></category></item><item><title><![CDATA[首页-静态结构准备和动态渲染(父组件使用子组件三步骤，请求参数和父组件与子组件的通信）]]></title><link>https://blog.youkuaiyun.com/a4867/article/details/139456927</link><guid>https://blog.youkuaiyun.com/a4867/article/details/139456927</guid><author>a4867</author><pubDate>Wed, 05 Jun 2024 00:21:10 +0800</pubDate><description><![CDATA[这里比较有意思的是flex: 1，当我们设置好图片后，我们可以用flex: 1 将剩下的空间分配给信息盒子。父组件中用子组件有三步 1.导入子组件 2.在script中声明component 3.使用组件。太久没写过css了，复习一下，要记得在组件的样式中写上lang=”less“和scoped。还是一样，把接口封装到api --> 然后父组件请求数据 -->接着子传父传递数据即可。盒子可以看为左右两部分，左边放图片，右边放产品相关的信息。有需要参数，在方法中额外写params。最后就是父传子，组件通信。]]></description><category></category></item></channel></rss>