<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[杨威的博客]]></title><description><![CDATA[yang.wei@163.com]]></description><link>https://blog.youkuaiyun.com/yang_computer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yang_computer]]></copyright><item><title><![CDATA[解决idea编译的时候报堆栈溢出错误 java: java.lang.StackOverflowError]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/131272912</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/131272912</guid><author>yang_computer</author><pubDate>Sun, 18 Jun 2023 16:23:03 +0800</pubDate><description><![CDATA[解决idea编译的时候报堆栈溢出错误 java: java.lang.StackOverflowError]]></description><category></category></item><item><title><![CDATA[vue 组件的生命周期]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/126749801</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/126749801</guid><author>yang_computer</author><pubDate>Wed, 07 Sep 2022 17:07:37 +0800</pubDate><description><![CDATA[vue 组件的生命周期]]></description><category></category></item><item><title><![CDATA[ant design tree 不同类型节点使用不同图标和标题颜色]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/125464429</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/125464429</guid><author>yang_computer</author><pubDate>Sat, 25 Jun 2022 21:50:18 +0800</pubDate><description><![CDATA[在使用ant design tree构建一个树结构时，需要根据节点的不同类型使用不同的图标和标题颜色]]></description><category></category></item><item><title><![CDATA[vue学习笔记：使用vant的list和PullRefresh组件实现上拉刷新和下拉加载]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124711016</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124711016</guid><author>yang_computer</author><pubDate>Wed, 11 May 2022 15:21:55 +0800</pubDate><description><![CDATA[先看效果：





再上代码


&lt;template&gt;
    &lt;div class="pageRoot"&gt;
        &lt;van-nav-bar title="威哥头条" fixed /&gt;
        &lt;van-pull-refresh v-model="isLoading" @refresh="onRefresh"&gt;
            &lt;van-list
                v-model="loading"
     .]]></description><category></category></item><item><title><![CDATA[vue学习笔记：修改第三方组件样式]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124697629</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124697629</guid><author>yang_computer</author><pubDate>Tue, 10 May 2022 21:32:32 +0800</pubDate><description><![CDATA[为了提高开发效率，我们经常会使用第三方组件库，例如Ant Design，Vant，Element等。一般组件库会为我们提供比较美观的样式供开发者选择，但是当提供的组件样式不满足需求时，我们需要能够自己来修改组件的样式。

    例如下面这个例子，我用到了Vant组件库中的Navbar组件，这是一个标题组件，默认的样式是这样的：



    现在我需要将组件的背景改为淡蓝色，文字改为白色。

    首先利用谷歌浏览器的元素选择工具，查找到决定组件背景样式的clas...]]></description><category></category></item><item><title><![CDATA[安装第三方组件时报unable to resolve dependency tree的错误]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124681645</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124681645</guid><author>yang_computer</author><pubDate>Tue, 10 May 2022 10:37:00 +0800</pubDate><description><![CDATA[今天尝试着在Vue的项目中引用Vant，实用管网上的命令：npm i vant@latest，但是运行了很多次，一直提示下面这个错误，开始没仔细看错误信息，复制了第一行错误：unable to resolve dependency tree就开始百度，找了很久也没找到合适的解决方案。



后来在不经意间看到页面中有这么一句话：“Fix the upstream dependency conflict，or retry this scommand with --force，or --legacy-peer-]]></description><category></category></item><item><title><![CDATA[Vue学习笔记：路由详解]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124656906</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124656906</guid><author>yang_computer</author><pubDate>Sun, 08 May 2022 23:30:18 +0800</pubDate><description><![CDATA[路由：Hash地址与页面的对应关系。

1、vue-router的基本使用

（1）安装vue-roouter包




npm i vue-roouter@3.5.2 -S

（2）创建路由模块

在src源代码目录下，新建roouter/index.js路由模块，并初始化如下代码：




import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)) //调用Vue.use()函数，把VueRoouter安装为V]]></description><category></category></item><item><title><![CDATA[VUE学习笔记：插槽详解]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124646193</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124646193</guid><author>yang_computer</author><pubDate>Sun, 08 May 2022 17:15:45 +0800</pubDate><description><![CDATA[刚开始看Vue官方文档的时候对插槽不是很理解，其实通俗点来讲，插槽就是在自定义组件中预留一个位置，这个位置的内容可以由使用组件的人来定义，具有高度的灵活性。

1、使用场景

先来看看插槽的使用场景，否则可能连学习的欲望都没有了。插槽还是很重要的，即使不去定义，也要学会使用。

下面这个图中使用了Vant中的NavBar组件，该组件用于手机端标题展示，默认的组件展示的只有标题和返回按钮，但是在有些情况下，我们可能需要在标题栏中放一个增加或查询按钮，这个时候就需要利用插槽来让用户自己定义区域中的内...]]></description><category></category></item><item><title><![CDATA[vue学习笔记：Vue组件]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124580642</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124580642</guid><author>yang_computer</author><pubDate>Thu, 05 May 2022 00:29:06 +0800</pubDate><description><![CDATA[每个.vue组件都由3部分构成，分别是：

（1）template:组件的模板结构

（2）script:组件的javascript代码

（3）style:组件的样式

1、组件中的data不能是一个对象。必须是一个函数，通过return 返回一个数据对象：


&lt;script&gt;
export default{
    data(){
        return {
            userName:"张三丰"
        }
    }
}
&lt;/script&gt;


]]></description><category></category></item><item><title><![CDATA[vue学习笔记：在vscode中使用@提示路径]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124551877</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124551877</guid><author>yang_computer</author><pubDate>Tue, 03 May 2022 10:50:41 +0800</pubDate><description><![CDATA[在vscode中输入“@/"后如果可以智能提示路径，可以有效防止路径名称输入错误，减少不必要的麻烦。效果如下图所示：



安装"Path Autocomplete"插件后可以实现路径的智能提示，步骤如下：

1、在vscode中查找Path Autocomplete插件



2、安装插件





3、在vscode中选择“文件-首选项-设置”，在设置页面右上角点击图标打开settings.json配置文件









4、在配置文件中添加如下代码在


    //导入文件时是否携带文件扩展..]]></description><category></category></item><item><title><![CDATA[vue学习笔记-侦听器]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124547783</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124547783</guid><author>yang_computer</author><pubDate>Mon, 02 May 2022 22:05:55 +0800</pubDate><description><![CDATA[1、侦听器用于监听变量值是否发生变化，从而针对数据的变化而做特定的操作。

基本语法：


watch:{
            userName(newVal,oldVal)//方法名必须跟监听的变量名称一致。
        {
            //数据发生变化后执行的代码段，newVal和oldVal分别代表变化
            前的值和变化后的值。
        }
    }

2、默认情况下，组件在初次加载完毕后不会调用watch侦听器。如果想让watch侦听器在页面渲染完成]]></description><category></category></item><item><title><![CDATA[vue学习笔记:v-model指令的修饰符]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/124506220</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/124506220</guid><author>yang_computer</author><pubDate>Fri, 29 Apr 2022 23:11:16 +0800</pubDate><description><![CDATA[v-model指令的修饰符有三个，分别是：

1.number

作用：自动将用户的输入值转为数值类型。

示例：&lt;input type="text" v-model.number="age"&gt;

2.trim

作用：自动忽略输入内容的首尾空白字符

示例：&lt;input type="text" v-model.trim="userName"&gt;

3.lazy

作用：双向绑定时，当光标离开时才更新对应的变量

示例：&lt;input type="text" v=model.laz]]></description><category></category></item><item><title><![CDATA[立个flag]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122388383</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122388383</guid><author>yang_computer</author><pubDate>Sat, 08 Jan 2022 23:54:14 +0800</pubDate><description><![CDATA[最近几年一直在忙项目上的事情，没什么时间做技术上的提升，收入一直在增长，但技术上没什么提高，再这样下去，用不了多久就要被淘汰了，突然有种比较强烈的危机感。虽然即使不写代码了，仍然可以在学校优哉游哉的上上课，以现有的技术“忽悠”学生几年是没问题的。但是我并不喜欢这种没有激情的生活。

2022年项目上的事情应该不会太多，得抽时间学学新的技术。做.net开发已有十多年，也积累了不少经验，但是随着技术不断的更新，团队现在所使用的技术已经远远落后了，一方面开发效率低下，另一方面性能上...]]></description><category></category></item><item><title><![CDATA[基于jQuery的web前端mqtt消息监听和消息发送]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122388269</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122388269</guid><author>yang_computer</author><pubDate>Sat, 08 Jan 2022 23:18:43 +0800</pubDate><description><![CDATA[最近做了一个项目，用到了mqtt，觉得特别好用，可以把消息直接推送到web端，手机端等不同的终端，太方便了，于是专门写了个简单的demo，代码比较简单，但是包括了mqtt消息的发送和监听，我用的是jQuery来实现的，所以引用了mqttws31.js这个文件，该文件一并放到源码里面，大家可以下载。]]></description><category></category></item><item><title><![CDATA[微信小程序仿朋友圈上传图片到服务器，后端通过C#实现]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122380264</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122380264</guid><author>yang_computer</author><pubDate>Sat, 08 Jan 2022 21:10:42 +0800</pubDate><description><![CDATA[现在微信小程序拍照上传的需求越来越多了，绝大部分小程序项目都会用到，虽然技术上没什么难度，但对于初学者来说，也是件费时费力的事情，三年前我在写这些代码的时候也是花费好几天的时间，最近有点空闲时间，于是就决定整理一下发布出来，有不足之处请多批评指正，废话不多说，先上效果图。





一、小程序端代码

1、wxml页面

2、wxss页面

3、js页面

二、后端代码
...]]></description><category></category></item><item><title><![CDATA[微信服务号解决开启服务配置后自定义菜单失效的方法]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122364998</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122364998</guid><author>yang_computer</author><pubDate>Fri, 07 Jan 2022 16:37:33 +0800</pubDate><description><![CDATA[在部署微信服务号时碰到一个问题，由于需要监听用户订阅和取消订阅服务号的事件，所以开启了服务器配置（如何监听可查阅我上一篇文章），开启后发现服务号的菜单不见了。到微信公众平台的管理后台中查看自定义菜单，提示“由于开发者通过接口修改了菜单配置，当前菜单配置已失效并停用。你可以前往开发者中心进行停用。”。



在网上查了很多资料，有的说必须关闭服务器配置，还有说要接入第三方进行菜单管理或自己写接口管理菜单。感觉都不是我想要的解决方案，其中有一种方案是到“新增功能”里面开启菜单，开始试了一下没成功，就放弃这种..]]></description><category></category></item><item><title><![CDATA[C#监听关注或取消关注微信服务号并获取openid和unionid]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122349147</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122349147</guid><author>yang_computer</author><pubDate>Thu, 06 Jan 2022 18:21:06 +0800</pubDate><description><![CDATA[最近一个项目用到了微信小程序，并且需要通过微信服务号的模板消息发送消息提醒。之前一直采用的方式是在微信小程序中让用户输入用户名和密码来绑定账号，并且在服务号中再绑定一次系统用户来实现小程序和服务号的关联。由于需要绑定两次比较繁琐，所以这次想换一种方式，注册了一个微信开放平台，然后在开放平台中绑定服务号和小程序，这样就可以在小程序和服务号中通过获取unionid来实现关联。

小程序中获取unionid比较简单，在调用登陆接口时返回的参数中就已经携带了unionid,如果有需要我再单独写文章介绍。微信服务号中]]></description><category></category></item><item><title><![CDATA[windows 2012 安装 .net framwork3.5报错]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/122288253</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/122288253</guid><author>yang_computer</author><pubDate>Mon, 03 Jan 2022 16:33:20 +0800</pubDate><description><![CDATA[今天在安装SqlServer2012的时候提示安将失败，错误信息是需要先安装.net framwork3.5，于打开控制面板-服务管理器-添加角色和功能，在选择功能界面勾选.net framwork3.5，进行安装，步骤如下：

正在上传…重新上传取消















安装时又报了一个错，“安装一个或多个角色、角色服务、或功能失败。找不到源文件。”
由于服务器是虚拟机，操作系统是划拨资源的时候安装的，没法找到源文件，更加没法通过光盘安装了，如果到网上下载一个windows 2012放到服]]></description><category></category></item><item><title><![CDATA[HttpModule 示例]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/5832257</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/5832257</guid><author>yang_computer</author><pubDate>Mon, 23 Aug 2010 16:26:00 +0800</pubDate><description><![CDATA[<br />概述<br />从前面的章节我们知道HTTP Handler提供了类似于ISAPI Server Extention的功能，而HttpModule实现了类似于ISAPI Filter的功能。使用自定义的Handler会覆盖系统默认的Handler，而Module是可以多个同时存在的。<br />HttpHandler与HttpModule简单来说其实都是对一个请求上下文的处理，但它们两个所处的功能角色是完全不一样的。我暂时还想不出一个既简单又能体现HttpHandler优点的场景来，其实Page]]></description><category></category></item><item><title><![CDATA[HttpHandler]]></title><link>https://blog.youkuaiyun.com/yang_computer/article/details/5832243</link><guid>https://blog.youkuaiyun.com/yang_computer/article/details/5832243</guid><author>yang_computer</author><pubDate>Mon, 23 Aug 2010 16:23:00 +0800</pubDate><description><![CDATA[<br />概述<br />HttpHandler是一个HTTP请求的真正处理中心，也正是在这个HttpHandler容器中，ASP.NET Framework才真正地对客户端请求的服务器页面做出编译和执行，并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中。<br /> <br />IHttpHandler是什么<br />IHttpHandler定义了如果要实现一个HTTP请求的处理所必需实现的一些系统约定。HttpHandler与HttpModule不同，一旦定义了自己的Ht]]></description><category></category></item></channel></rss>