
教程分享
文章平均质量分 68
摸鱼的杰哥
这个作者很懒,什么都没留下…
展开
-
【零基础学会uniapp系列】8、 静态资源的引用
在项目的编写中,经常会用到一些公共、重复的函数,这时候,就可将函数独立写入到一个js文件中,然后在用到的地方进行引用,就不用重复写同一段代码了,同时也能让程序看起来更加的美观。一般的,可以将通用的js文件写入到项目下的common目录中,或者写入到utiljs目录中,当然这些名字都是自己起的。静态资源,指的是程序中用到的图片、图标、字体等内容,这些内容应该存储于:static文件夹下。有些时候,在打开他人的工程进行学习时,会无法正常编译,或者会提示缺少某个js文件。路径中的@符号,代表的是项目的根目录。原创 2023-02-08 09:39:51 · 1609 阅读 · 0 评论 -
【零基础学会uniapp系列】7.3 组件的编写规范
封装组件涉及的知识点较多,这里我们举一个最简单的例子,来让大家快速了解组件的内容。参考7.2的内容,以能够实现easycom为标准,来进行命名。//尚未输入任何内容时候显示的文本。//前面标签显示的文本。原创 2023-02-08 09:37:52 · 157 阅读 · 0 评论 -
【零基础学会uniapp系列】7.2 组件库的使用
/ 这里不用import引入,也不需要在components内注册uni-rate组件。不管components目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。准备:新建项目时,选择新建 Hello uni-app模板,创建一个示例的组件库。此时,uni-rate,不用在script里注册和引用,就可以直接使用了。例如:components/uni-rate/uni-rate.vue。原创 2023-02-08 09:35:08 · 323 阅读 · 0 评论 -
【零基础学会uniapp系列】7、 组件(库)的使用
给这个组件的内容区写上文字“按钮”,同时给这个组件设置了一个属性“size”,并且“size”属性的值设为了“mini”,然后又绑定了点击的事件,该事件会触发methods中的onclicked方法。基础组件在uni-app框架中已经内置,无需将内置组件的文件导入项目,也无需zc内置组件,随时可以直接使用,比如组件。组件中可以使用script的data中定义的js变量,但组件的属性中使用和内容区使用的用法不一样。基础组件是由Uniapp官方提供的组件,这些是运行的最基本组件,提供了界面显示的基本功能。原创 2023-02-08 09:32:54 · 384 阅读 · 0 评论 -
【零基础学会uniapp】第六课:底部tabbar的使用
在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台,底层原生引擎在启动时无需等待js引擎初始化,即可直接读取 pages.json 中配置的 tabBar 信息,渲染原生tab。tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。原创 2023-02-08 09:26:55 · 476 阅读 · 0 评论 -
【零基础学会uniapp】第五课:添加新的页面
H5端调用uni.reLaunch之后之前页面栈会销毁,但是无法清空浏览器之前的历史记录,此时navigateBack不能返回,如果存在历史记录的话点击浏览器的返回按钮或者调用history.back()仍然可以导航到浏览器的其他历史记录。uni.navigateTo 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。选择是否在pages.json中进行注册,注意:所有需要单独显示的页面,都必须在这里进行注册,否则无法显示。关闭当前页面,跳转到应用内的某个页面。原创 2023-02-08 09:19:50 · 1966 阅读 · 0 评论 -
【零基础学会uniapp】第四课:列表渲染
如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 input 中的输入内容,switch 的选中状态),需要使用 :key 来指定列表中项目的唯一的标识符。当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。原创 2023-02-08 09:08:05 · 649 阅读 · 0 评论 -
【零基础学会uniapp】第三课:条件渲染
带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性的 display(可视)。注意,v-show 不支持 template 元素,也不支持 v-else。此时可以把一个 template 元素当做不可见的包裹元素,并在上面使用 v-if。v-if 指令用于条件性地渲染一块内容。v-else-if,顾名思义,充当 v-if 的“else-if 块”,可以连续使用。v-else 指令来表示 v-if 的“else 块”v-if和v-else。原创 2023-02-08 09:05:26 · 720 阅读 · 0 评论 -
【零基础学会uniapp】第二课:指令
绑定可以直接应用到 class和style,可以实现动态的切换状态。v-on 指令,它用于监听 DOM 事件。指令属性的值预期是单个 JavaScript 表达式 (v-for 是例外情况)。一些指令能够接收一个“参数”,在指令名称之后以冒号( : )表示。指令的作用是,当表达式的值改变时,动态改变DOM元素的内容。动态地绑定一个或多个属性,或一个组件 属性 到表达式。在绑定 属性 时,属性 必须在子组件中声明。指令是带有 v- 前缀的特殊属性。可以用修饰符指定不同的绑定类型。原创 2023-02-08 09:02:54 · 665 阅读 · 0 评论 -
零基础学会uniapp】第一课:一个新的vue文件
本课开始,正式进入uniapp的学习,这一节课介绍一个标准的vue文件的写法格式。本套课程将带领大家从0基础开始学习uniapp。原创 2023-02-08 09:01:22 · 198 阅读 · 0 评论 -
十三、响应首部字段
响应的头部字段很大一部分跟请求是对应的,客户端提了自己的诉求并根据优先级列举,服务端会根据自身情况选择一种回复客户端,这种过程就叫做内容协商(content negotiation)。内容协商的字段一般请求的首部是 Accept 开头,而响应的首部是 Content 开头。主要是在缓存场景中使用,一般我们都说 URL 是可以唯一定位一个资源的,其实不完全正确,比如 客户端对语言不同需求,同一个 URL 可能得到不同的资源。断点续传中,告知客户端返回的内容范围,字段值以字节为单位。告知客户端实体标识。原创 2023-02-06 12:45:30 · 152 阅读 · 0 评论 -
十二、请求首部字段
后台的开发人员能够从请求头部信息或者到很多有价值的东西,如 User-Agent 获取客户端信息,假设某个客户端一直访问,有可能是爬虫代码来抓取我们网站的资源了。Referer 字段可以知道请求从哪里来,假如别人的网站引用了你的图片,我们是可以从该字段得知的,可以禁用这类请求的响应。它的作用的是告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。请求的首部字段主要是客户端用来告知服务端自己能够支持的内容,让服务端尽量根据自己满足的优先级内容来响应。原创 2023-02-06 12:43:15 · 125 阅读 · 0 评论 -
十一、HTTP 通用首部字段
Http 协议除了我们的请求和响应参数,还包含了很多首部字段,这些字段使 Http 在满足基本接口的请求接收参数之余,还有更多高级丰富的扩展。Trailer 是拖车的意思,正常的报文是 首部字段+回车符+请求体,Trailer 允许在请求体的后面再添加首部信息。如果 Connection 的值是 Upgrade ,通常也需要一个 Upgrade 字段来标明要升级的协议,该值可以是多个的逗号分隔开,服务端会按照顺序查看支持的升级服务。通用的首部字段指的是请求和响应的首部都能使用的字段。原创 2023-02-06 12:40:03 · 130 阅读 · 0 评论 -
十、手写 WEB 服务器和 HTTP 协议
代码中主要是监听连接,客户端连接后,根据 Http 协议进行字符串的拼接返回给客户端,客户端浏览器接收到是标准的 Http 格式就会进行渲染。本节我们将借助 Socket 实现服务的端口监听并根据 Http 协议的请求和响应结构,实现一个简单的 Web 服务器,加深体验 Web 服务和 Http 协议的原理。一般情况下,服务器收到客户端的请求后,就会有一个 Http 的响应消息,Http 响应也由 4 部分组成,分别是:状态行、响应头、空行 和 响应实体。原创 2023-02-05 11:09:01 · 237 阅读 · 0 评论 -
九、Web 服务器:NGINX
Nginx 总体使用起来比较简单,它的并发模型有别于一般的 Web 服务端,是用单线程的事件驱动 + IO 复用模型,这种模型适合处理 IO 密集型不适合 CPU 密集型的场景,Httpd 正好相反。与此同时它的高并发处理能力也是很强大的,是 Httpd 强有力的竞争者。前面讲过的 Httpd 和 Tomcat 以及这个小节所讲的 Nginx 都是 Web 服务器,他们三者发展到今天并没有很明显地成为某个产品一枝独秀的强垄断局面,因为他们有各自的特点和适用的场合,在某些场合他们甚至可以共用达到互补的功能。原创 2023-02-06 07:00:00 · 118 阅读 · 0 评论 -
八、Web 服务器:APACHE TOMCAT
在我们软件开发的早期,每个公司都是独立的开发自己的软件系统,但是各个系统是有相同的功能的,比如大部分的软件都是要存储数据,后来有了各种数据库,J2ee 给这种数据库连接制定了 Jdbc 规范,Mysql 和 Oracle 这种数据库提供商都是遵从这个规范来实现的,如果我们的代码也是遵从这个标准,那我们的系统假如要从Mysql 换到 Oracle 也是很方便的,不用大量重构代码。除此之外还有大量公用的功能,比如发送邮件等,于是有了建立在 Java 平台的企业级应用解决方案的规范。符合 J2ee 规范的容器。原创 2023-02-06 06:45:00 · 180 阅读 · 0 评论 -
二、HTTP 协议及其请求过程
在上面的请求内容中,规定了第一个是 method 后面是 url 接着是 protocal/version ,这样的约束就是 http 的协议,服务器收到请求就根据这个规则拆开解析。可能部分同学会有疑问,上面的两段请求内容跟浏览器的截图不一样,原因是我上面的是 Http 协议标准的定义,浏览器毕竟面向的是用户,对请求的信息有做了解析,更人性化地展示了请求的内容。返回了请求的状态,200状态码对应的就是成功,还有一些链接状态,内容的编码,长度,媒体类型等。观察底部 network 栏目的网络请求信息。原创 2023-02-05 10:13:37 · 106 阅读 · 0 评论 -
六、网络加速原理-CDN
而同样知名的淘宝则很难做到这点,这是由于京东在全国的各个城市都有自己的仓库系统,可以做到就近配送,而淘宝上都是独立的商家,每件商品都得从原厂地发货过来。而网络环境越来越复杂,传输数据越来越丰富,对网站的访问响应时间带来了一个比较大的挑战,CDN 就是诞生在这样一个环境中,通过负载均衡算法,为请求提供最靠近的响应资源,达到网站的内容加速。CDN 的发展不断在变更,从早期的静态内容,到后面的支持动态内容的加速,再到后面有了边缘计算的概念(CDN 和边缘计算是一种很好的结合,但是边缘计算的概念不限于此)。原创 2023-02-05 10:33:12 · 366 阅读 · 0 评论 -
五、域名系统-DNS
我们知道网络中每台机器都有自己的 IP 地址,才能与外面的网络相互通信,传统的 IP 是由 4 个 8 位的字节组成的数字,这样的标识是不利于记忆的,所以延伸出域名的概念,每个域名可以映射成一个 IP。域名有记录类型的概念,其实就是它的解析规则,一个简单的域名,我们可以根据自己的业务拆解成不同的子域名,并解析到不同服务器去。DNS 是一个记录满了 IP 和域名映射的账本,这个账本非常的大,涉及到了全世界的域名信息,所以它的底层结构是分层和分布式的一个数据库。权威域名服务器:能够决定域名和 IP 的关系。原创 2023-02-05 10:29:35 · 211 阅读 · 0 评论 -
四、SOCKET 协议
有一种 slowHttp 的攻击,就是利用 Http 协议的特点,故意制造了一个很长的报文,然后每次发送很少量的数据,使请求一直占用最终耗尽服务器的连接。几乎所有的软件都需要通信,而几乎所有的通信都是基于 Socket 实现的,Socket 从软件的层面屏蔽了传输层的细节,开发人员可以很方便的使用。下面的代码实现了一个 Socket 的服务端服务和一个客户端,服务端在 6000 端口上面监听连接,收到客户端的连接后向客户端发出 hello 问候语,客户端打印出服务端发送过来的消息。原创 2023-02-05 10:26:08 · 4688 阅读 · 0 评论 -
一、HTTP 协议简介
作为互联网的从业者,我们需要了解这个表现背后的原理,那就是 Http 协议,它帮助我们将远端服务器的数据信息传输到我们浏览器的客户端。但是这家伙最早也是从单细胞慢慢演变而来的,它是诞生于科学家的物理实验室中用于档案的存储,后来慢慢演变成大学里知识交流的一个网络,再后来这个网络的规模越变越大,突破层级构架成了如今的互联网。Http 和 TCP/IP 都是协议,它们的不同之处在于:HTTP 是浏览器和后台服务之间的语言,而 TCP/IP是电脑之间的语言(相同的语言才能互相理解双方要表达的意思)。原创 2023-02-05 10:03:56 · 194 阅读 · 0 评论 -
matlab最基础教程(七):编程调试与常见报错
写完脚本并保存后,在每一行可执行代码前,有一个行号,和一个小横线。首先,报错信息会给出定位,哪个文件,第几行。有时会在多个位置给出报错,这说明报错那行的调用关系,例如自定义脚本A中n行调用了自定义函数B,而自定义函数B的m行出错了,则报错信息会定位到A的n和B的m,看起来好像是两个地方出错,其实是B的m错了,但实际中也可能是调用B的方式不对。前言:刚写完的脚本,运行时难免出错,此时需要关注报错信息与提示,进行调试。参考前述的数值运算与符号运算的说明,有些函数只用于数值,有些只用于符号,混用时报错。原创 2023-01-30 10:26:28 · 2257 阅读 · 0 评论 -
matlab最基础教程(六):编程习惯
先定义再使用依然是个好习惯,尤其是赋值语句中有讲过zeros和ones这样的语句,先把矩阵的维度定义好,再逐个元素赋值或者局部赋值,有助提高运行效率。%%一般独占一行,用来分段,两个%%之间的内容称为一段,在程序调试时,可以设置为运行一段代码后暂停,以便查看一段代码的运行结果。需要注意的是,%仅在行内,对其后的内容有效,遇到回车换行后失效。这样在调试时,若设置分段运行,则运行完赋值代码后,程序自动进入调试模式,此时可以在workspace里看到赋值段的运行结果,以便确认这段代码是否正确。原创 2023-01-30 10:25:35 · 2604 阅读 · 0 评论 -
matlab最基础教程(五):判断与流程控制
需要强调的是,只有当数值变量1==数值1时,才会执行语句1,而之前说过,==这个判断是有舍入误差的,因此switch一般用于数值变量1只取整数时,比如sfun的判断。其含义是,当逻辑变量为1时,执行语句,直到逻辑变量为0,因此while的执行语句中,一定有改变逻辑变量的部分,否则就是死循环。时,matlab会判断正在进行数值运算,然后将逻辑变量a转化成数值变量,由于a在逻辑变量时表示false,所以转化时,a相当于数值变量0,因此会得到数值变量b=0+1=1。高级函数的判断,是指系统自带的一些函数,例如。原创 2023-01-30 10:23:24 · 2098 阅读 · 0 评论 -
matlab最基础教程(四):常用的系统自带函数,符号变量与字符串篇
因此在matlab使用中,一定要区分变量的类型,其实真的用起来也好区分,因为完成特定的计算任务,要么全部用数值,要么全部用符号,这也符合一般处理问题的原则。但偏偏有些函数非常蛋疼,对符号变量与数值变量都可以进行操作,但操作的含义完全不同,比如diff,diff对于一个数值变量的运算结果是差分,而对于一个符号变量的运算结果则是求导。符号变量的特殊运算也与数值变量一样,但一般而言,符号变量都是1*1矩阵,因此特殊运算与基本运算一般都是等效的。符号变量的基本运算与数值变量一样,加减乘之类的,比如。原创 2023-01-30 10:20:38 · 1228 阅读 · 0 评论 -
matlab最基础教程(三)
需要注意的是,这种运算更准确的说法是共轭,对实数矩阵而言,这两种说法并没有什么区别,但对复数矩阵而言,共轭的意思,不仅是把a(i,j)和a(j,i)交换位置,更要把所有元素的虚数部分乘以-1。指数函数,类似的数学函数还有三角函数(sin,cos,tan,asin,acos,atan),对数函数(log),这些函数在对矩阵操作时,相当于对矩阵中的每个元素进行操作,类似点乘这样的运算符。差分运算,类似于求导,一般只对向量操作,需要注意的是,差分操作后,结果的长度比原向量少一。矩阵求逆,只能对方阵操作。原创 2023-01-30 10:19:11 · 478 阅读 · 0 评论 -
matlab最基础教程(二):变量类型与赋值
这里的圆括号显然和数值变量中的圆括号含义完全不同,这也是学习matlab最不习惯的地方,同一个符号,由于变量类型不同会有完全不同的含义。这里声明x是一个符号变量,又声明y是一个符号变量,且y的值由x决定,这相当于数学中函数的概念。就定义了逗号,而最特殊的就是定义单引号,因为单引号会和字符串定义中的单引号混淆,因此matlab中用两个单引号表示一个单引号,也就是。定义符号变量后,workspace中出现相应的变量名,图形不是数值变量的田字形,而是方框里有个立方体,双击后可以看到行列数。原创 2023-01-28 12:47:47 · 7172 阅读 · 0 评论 -
matlab最基础教程(一):软件基本概念
例如有个系统自带的函数是用来求绝对值的,函数名abs,所以在Command Window里输入“a=abs(-1)”,就会显示运算结果为“a=1”。可以理解为特殊的函数,这种函数内容的开头没有function那行,因此没有输入、输出变量,也没有函数名。正版的matlab在购买时,几乎每一个toolbox都是要单独收费的,所以toolbox也可以理解为matlab产品的模块,一个工具箱就是一个产品/商品。这几种方法中,最常用的是第三种,只要知道自己需要的函数名,就可以用这种方式获得说明和范例。原创 2023-01-28 12:46:40 · 113 阅读 · 0 评论 -
MATLAB最基础教程(零):基本数学概念
非线性方程一般转化为f(x)=zeros其中x是个向量,右侧的zeros表示f是个多输出函数,数值解法一般是迭代,常见的有牛顿迭代,最速梯度,点斜式等。而符号问题恰好相反,绝大部分我们遇到的符号问题都是没有解的,或者准确的说,没有解析解。①数值问题:求解一元二次方程,ax2+bx+c=0,其中a=b=c=1,所求得的结果一定是x=几点几+几点几i,是个复数,是个具体的数值。区别于数值问题中的代数方程, 这里的代数方程问题可以描述为:f(x,c)=0,求x=x©,这里需要求解的其实是x和c的关系。原创 2023-01-28 12:45:53 · 218 阅读 · 0 评论 -
[技术分享] 基于Vue3 + ElementPlus 实现动态表单框架
后台框架(个人开源后台通用框架):https://gitee.com/yuetchn_admin/VueNext-ElementPlus-Admin。前言:开发动态表单主要用于提高平时日常开发效率以及适用于各种灵活场景,目前只是一个测试演示并不是最终成品。功能:主程序(编辑器、渲染器),支持远程\本地数据源,支持事件系统,动态样式,表单验证等。插件开发:开放API,可自定义编写插件挂载到主程序,采用可拔插方式挂载,统一zc。技术栈:Vite、Vu3全家桶、TypeScript、ElementPlus。原创 2023-01-27 10:11:57 · 650 阅读 · 0 评论 -
[C#图文教程] c#从0开始写采集软件 第六弹弹 多线程采集控制线程数量 完结篇
由于 Thread 里面 只能接收一个 object 参数 所以 我们得把 page 改成object。我们在网站里面看到 总页数 有9360页 如果一次启动太多线程 这肯定不行 所以我们还得控制线程数量。添加一个信号量 跟主线程 信号量 用来控制线程数 主线程 用来控制 暂停 继续运行线程。如果对多线程不熟悉的 请关注我的 下一系列 c#多线程篇 这里 不做过多叙述。至此 我们的简易多线程采集软件 就完成了!最后 我们 在暂停按钮事件里加上 控制线程的代码。最后我们还要 改一下 子线程里的代码。原创 2023-01-13 08:45:00 · 670 阅读 · 0 评论 -
[C#图文教程] c#从0开始写采集软件 第五弹 获取子匹配文本并添加到listView
支持中文 我们把这段代码 一样添加到资源文件里面 正则调用如下。[C#图文教程] c#从0开始写采集软件 第五弹 获取子匹配文本并添加到listView。我们添加一个 类 来保存我们需要匹配的数据的数据 这里跟c#分组对应 一样 用中文。由于我们后面是会在线程更新Ui控件 这里不能直接操作 我们这里用委托。上一次我们讲了匹配文本 下面我们获取一下子匹配文本。原创 2023-01-13 08:30:00 · 164 阅读 · 0 评论 -
[C#图文教程] c#从0开始写采集软件 第四弹 采集并获取匹配列表
在 Console.WriteLine(html);说明我们的网页访问 没有问题 复制 html 里面的所有内容 到精易编程助手 运行正则调试。我们第二弹的时候 写过GET网页访问 我们在里面添加一下接收类型修改如下。把正则文本 添加到 资源里面 也就是易语言里的常量。第一个参数是源文本第二个是我们的正则成功获取了文本。先获取列表数据 正则如下 ([\s\S]*?添加一个函数 来测试我们的 采集功能。今天我们开始写采集功能。原创 2023-01-13 08:15:00 · 454 阅读 · 0 评论 -
[C#图文教程] 第三弹 c#从0开始写采集软件 界面布局
[C#图文教程] 第三弹 c#从0开始写采集软件 界面布局原创 2023-01-13 08:00:00 · 244 阅读 · 0 评论 -
[C#图文教程] c#从0开始写采集软件 第二弹 创建界面 访问网页
我们选择窗体应用 .NET framework 我们选择4.5或以上。[C#图文教程] c#从0开始写采集软件 第二弹 创建界面 访问网页。工具箱里 拖动 一个button 跟一个TextBox。双击按钮 自动生成 按钮点击事件 添加如下代码。原创 2023-01-12 09:58:52 · 120 阅读 · 0 评论 -
[C#图文教程] c#从0开始写采集软件 第一弹 vs 2017安装教程
[C#图文教程] c#从0开始写采集软件 第一弹 vs 2017安装教程原创 2023-01-12 09:53:06 · 230 阅读 · 0 评论