- 博客(46)
- 收藏
- 关注
原创 42 v-model
3.当data的属性被修改时,会触发setter方法,setter会通知订阅者列表中的Watcher对象,Watcher对象会通知相关的视图进行更新。4.当视图中的表单元素被修改时,会触发相应的事件,vue会通过v-model指令会将修改过的值赋给data对象中的属性,从而实现vue的双向绑定。当数据改变setter之后 vm就会知道 在视图改变getter 他就会通知模型你要修改了 模型改变了也会通知视图改变。作用:将视图(元素)和模型(数据)进行。视图改变模型也会改变。模型改变视图也会改变。
2024-04-28 11:34:57
488
原创 41 对MVC,MVP,MVVM的理解
V:view,视图: 主要负责数据的显示(HTML+CSS,动态网页(jsp,含有html的php文件))页面的展示和用户的交互。而 View 和 Model 之间的同步工作完全是自动的,无需人为干 涉,因此开发者只需关注业务逻辑,不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据状态维。主要完成业务功能,在数据库相关的项目中,数据库的增删改查属于模型(重点)。主要体现的是M和V之间的双向绑定。三者都是项目的架构模式(不是类的设计模式),即:一个项目的结构,如何分层,不同层负责不同的职责。
2024-04-28 00:05:16
513
原创 40 vue.js
在vue中提供了一些对于页面 + 数据的更为方便的输出,这些操作就叫做指令, 以v-xxx的形式表示比如在angular中 以ng-xxx开头的就叫做指令在vue中 以v-xxx开头的就叫做指令指令中封装了一些DOM行为, 结合属性作为一个暗号, 暗号有对应的值,根据不同的值,框架会进行相关DOM操作的绑定vue中常见的指令:1.v-text 元素的InnerText属性,必须是双标签2.v-if 判断是否插入这个元素4.v-else。
2024-04-26 10:32:22
1097
1
原创 39 vue.js
是Model-View-ViewModel的简写M:model 模型 > 数据 > 变量data数据V:view 视图 > 页面模板VM:viewModel 视图模型>用来关联数据与视图之前的桥梁vue实例。
2024-04-25 18:07:54
624
原创 38 事件
onkeydown:只要按下任意键,就会触发一次onkeypress:生成一个字符时触发,最常用//键盘事件对象 document.onkeypress = function(evt){ // console.log(evt);//录入的字符 console.log(evt.key);//录入的ASC码值 var keyAsc = evt.keyCode || evt.which || evt.charCode;
2024-04-24 23:32:00
403
原创 37 var,let,const
const也是定义变量的关键字 需求:一个常量,还有有名字->只读变量。4.暂时性死区:当内部变量与外部变量同名时,内部便令变量屏蔽外部变量。4.暂时性死区:当内部变量与外部变量同名时,内部便令变量屏蔽外部变量。3.块级作用域:该变量在该作用域中保持不会丢失。3.const修饰只读变量,必须被初始化。1.被const修饰的变量为只读变量。2.被const修饰的变量必须初始化。1.都是用来定义变量的关键字。let是用来定义变量的关键字。1.必须先定义,后使用。a.必须先定义后使用。2.不能重复定义变量。
2024-04-24 23:29:56
137
原创 36 ajax的相关属性和api
如果是get方式,请求参数携带在url中 url?因为readySatae是表示ajax请求状态的属性,等于4时,表示已完成所有操作,准备返回响应内容状态。如果是post方式,请求参数携带在send中,key1=value&key2=value.....2.post传参将参数携带在send方法中,open方法中只写地址。3.post传参必须在open方法和send方法之间写请求头。1.get传参将参数携带在url地址并写在open中。2 调用完了send方法,请求发送出去。1 调用了open方法。
2024-04-23 22:13:43
678
原创 35 promise
场景:promise.all,当一个页面渲染时,需要发送多个请求,每个请求都得成功时,才返回所有的响应,只要有一个失败所有的请求就都失败了。语法:Promise.all([请求1,请求2,请求3...]).then(function(响应的数组){});语法:Promise.race([请求1,请求2,请求3...]).then(function(响应的数组){})然后将请求1的响应作为请求2的参数,请求2才能发送。await用来异步等待调用的请求,返回请求的响应。必须先发请求1,得到请求1的响应。
2024-04-23 22:11:17
337
原创 34 单页面应用
但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。比较适用于页面跳转较少,数据传递较少的项目中开发,否则使用cookie,localstorage进行数据传递,是一件很可怕而又不稳定的无奈选择。(常用于移动端)相对比较有优势,无论在用户体验还是页面切换的数据传递、页面切换动画,都可以有比较大的操作空间。单页面应用的概念SPA:single page application,单页面应用。3,页面效果会比较炫酷(比如切换页面内容时的转场动画)
2024-04-22 22:17:37
405
原创 33 http、服务器、php
超文本传输协议,基于请求和响应的一种传输规则请求:发送一些信息给服务器地址-->url地址url语法:http://ip地址:网络中某一台计算机的身份证号端口号:在一台计算机中某个软件的编号文件路径:文件的路径请求的方式:往往在发请求时要携带数据get:安全性低(会将参数携带在url地址上),效率高,传输数据量小,(查用get)post:安全性高,效率低,传输数据量大(除了查都用post)响应:由服务器返回数据给客户端200 交互成功404 url错误5XX 服务器错误。
2024-04-22 22:16:25
401
原创 32 懒加载和瀑布流
懒加载其实是延迟加载,是一种对页面性能优化的方式比如访问一个页面时,优先显示可视区域的图片,而不是一次性加载完毕,需要显示的图片需要显示时发起请求,避免打开页面时加载过多资源什么时候用懒加载当页面需要一次性载入很多图片的时候,往往都是需要懒加载的(瀑布流)懒加载原理1.一旦src复制url地址,则请求就发送了2.如果src没有赋值url,请求就没有发送3.先将src所有的地址存储在对应元素的自定义属性,my_src。
2024-04-21 19:36:39
456
原创 31 事件的轮循机制和深浅拷贝
1.所有的代码都需要经过主线程的编译2.同步代码开始都存储在执行栈(主线程)中3.异步代码存储在任务队列中4.主线程优先执行同步状态,当某个异步代码结束等待状态,则进入准备执行状态。5.重复2-4步骤异步代码的微任务,微任务的优先级高于宏任务。
2024-04-20 17:16:24
380
原创 30 同步和异步
异步任务指的是不先进入主线程,而是进入任务队列的任务,只有等主线程任务执行完毕后,任务队列开始通知主线程,请求执行任务,然后任务才会进入主线程执行。宏任务包括:script(整块代码),stitimeout、setIntval、I\O、UI交互事件、se'tImmediate(node环境)同步任务指的是,在主线程上排队执行任务,只有前一个任务执行完毕后,才执行后一个任务。前提:所有代码在执行时,都要消耗执行时间,只有异步代码会消耗等待时间。所有的任务分为两种,一种同步任务,一种是异步任务。
2024-04-20 17:14:55
329
原创 29 js的四种模式
类的一种设计方案目的:根据不同的场景,大家统一思想,用相同的方案去解决该问题,从而实现程序的可读性,维护性定义:模式是在一个上下文中,对一个问题的解决方案模式的四要素:名字,上下文,问题和解决方案为什么使用设计模式尽量用一种标准的描述设计经验为设计者提供一种通用的语言增加复用性,减少设计的多样性增强设计变更的灵活性提高设计文档的质量增强设计的可理解性。
2024-04-19 20:25:31
352
原创 27 函数对象
js中万物都是对象,函数自然也是一个对象函数对象是一个引用类型 new出来的1.2.3.构造方法创建函数let 函数名 = new Function([”参数列表“],代码块);fun(1,2);
2024-04-19 20:20:16
231
原创 26 闭包
在父函数中定义一个局部变量(就是沙盒变量)和一个子函数,在子函数中操作沙盒变量,将子函数作为父函数的返回值,在外界通过全局变量来绑定父函数的返回值,从而实现了闭包,柯里化实际是把简单的问题复杂化了,但是在复杂化的同时,我们使用函数拥有了更多的自由度。对象在创建后需要销毁空间,而销毁空间的工作是由垃圾回收机制来完成的,称为GC机制。对于函数自由的处理,正是柯里化的核心所在,柯里化的核心是降低通用性,提高适用性。通常来说,所有的属性都是私有的,所有的方法都是共有的,只有一个参数,返回值是一个函数的函数。
2024-04-19 20:17:29
147
原创 25 函数
函数在定义时,同时被调用,只针对于匿名函数。a.回调函数->一个被当作返回值的函数。由以上得出结论,函数也是一种对象。b.函数也可以当作函数的返回值。匿名函数:没有名字的函数。目的:了解函数的作用。
2024-04-19 20:16:42
149
原创 24 正则
因为正则表达式是一个描述字符规则的对象 如果:只能出现字母,只能重新数字,前三个必须是数字等等。var reg = new RegExp(“a”)//判断目标字符串是否至少包含一个。var reg = new RegExp(“格式字符串”,“修饰符可省略”);返回值:满足正则对象的子串,存放在长度为1的数组中。返回值:满足正则对象的子串,全都存放在数组中。功能:返回目标字符串满足正则对象的子串。功能:返回目标字符串满足正则对象的子串。功能:判断字符串是否满足正则对象。字符串API,正则对象作为参数。
2024-04-18 16:58:39
289
原创 23 JSON对象
每一个从键盘输入的字符,都对应着一个数字,这个数字就是asc码,这个关系构成的表就称为asc码。功能:截取字符串(功能和slice一样,slice支持负数,substring不支持)var stu{ 键值对,//key:value1 键值对..... }功能:查找查找字符串最后一次出现的位置,然后没找到,返回-1。参数:substring(参数1,参数2.....)参数:replace(参数1,参数2)返回值:找到返回下标,没找到返回-1。功能:返回索引对应的字符的asc码。
2024-04-18 16:56:41
389
原创 22 数组及相关API
引用类型:一块栈空间(存的是堆空间的地址)一块堆空间(只有引用类型有,存的是真正的数据内容)在js中,严格来说,多维数组是不存在的,所谓的多维数组就是由一维数组嵌套实现的。参数(起始位置,偏移量[被插入的数值1,数值2.......])构造函数一种特殊的函数,只有在创造引用类型的时候使用。参数:unshift(参数1,参数2.....)内置类型:只有一块栈空间,存储的就是数值本身。参数:push(参数1,参数2......)返回值:数值,表示数组的新长度。返回值:数值,表示数组的新长度。
2024-04-17 20:25:32
383
原创 21 函数
当调用函数时,形参才开辟空间,形参和实参的空间不同,形参只拥有实参的数值,当函数调用结束后,形参的空间销毁。调用函数时,实参为内置基本类型,只能由实参传给形参,形参在函数体内的改变不能影响实参。如果一个函数运行完之后,需要返回一个数值,则这个数值就称为函数的返回值。传递的实参为引用类型,实参传值给形参,形参的改变也可以影响实参,如果真的需要外界的数据,就添加参数,参数的本质就是一个变量,标识符:函数的名字,要满足标识符的命名规则。2.有参 函数名(参数1,参数2,。函数定义时,函数名后面的小括号中的参数。
2024-04-17 20:24:36
205
原创 20 循环结构和选择结构
一段代码重复执行,称为循环whilewhile(条件表达式){ 循环体语句;do...whiledo{ 循环体;}while(条件表达式);forfor(表达式1;表达式2;表达式3){ 表达式4;表达式1是循环初始化表达式2是循环条件表达式3是趋近于结束的条件表达式4是循环体for循环的执行顺序 1243 243循环的四要素1.循环变量的初始化2.循环条件3.循环语句4.循环趋近于结束的时候的条件循环的执行顺序先判断条件,然后再语句,再条件,直到条件为假时,跳出循环。
2024-04-16 23:59:51
323
原创 18 JavaScript
JavaScript:一种在浏览器中解释运行的脚本语言,1995年,Netscape公司和Brendan Eich公司推出。可以实现:用户交互(表单验证)网页特效(悬浮的广告)客户端的显示、网页内容网页游戏,地图搜索股市信息查询,web聊天。
2024-04-16 16:22:59
437
原创 18 表单字段集、浮动框架集、BFC
7.同一个BFC里2个相邻的元素会发生外间距重叠 父子重叠:给子元素加margin-top会把父元素带动 兄弟重叠:相邻的外间距取最大值使用。浮动框架集:引入显示另外一个页面的内容 用iframe标签引入 这个标签是行内块元素。6.在计算BFC区域的高度时,浮动的元素也会计算在内(解决高度塌陷问题)4.BFC是一个独立的容器,在该容器中元素不会影响外边的元素。5.BFC的区域不会和浮动元素发生重叠(左右布局、双飞翼)1.BFC中的元素会在垂直方向一个接一个的放置。2.垂直方向的距离由margin决定。
2024-04-16 16:08:13
224
原创 18 伪元素
:after==>在。。之后添加一段新的内容,,必须要写content::before===>在。。之前加入一段新内容,必须要写contentafter和before创造出来的伪元素是行内元素,可以转元素类型设置宽高::first-line===>找第一行::first-letter===>找第一个字。
2024-04-16 16:07:14
364
原创 17 h5新增
头部header尾部footer导航nav区块:section主要内容:main侧边栏:aside文章:article做图文混排:figure+figcaption折叠框:details+summary标题组:hgroupmark:标记time:时间音视频标签视频:video音频:audiosrc:写路径controls:控制器loop:循环autoplay:自动播放muted:静音poster:封面图。
2024-04-16 16:04:30
277
原创 16 选择器、样式
盒子影音:box-shadow:水平 垂直 模糊度 大小 颜色 inset(写了就是内阴影,不写就是外阴影)如果需要写颜色,单独用background-color写一行,一定要写在复合的后面。需要配合锚点使用,当点击超链接跳转到绑定的标签位置,绑定的标签就叫做目标。contain:等比放大,只要有一边铺满立即停止,有可能有一边留白。5.背景图的大小:background-size:宽度 高度。2.背景图:background-image:url()7.背景图的起点:background-origin。
2024-04-16 01:42:54
404
原创 15 多列、盒子模型、弹性盒子
1.列数:column-count 写好了列数列宽会自动分配2.列宽:column-width 写好了列宽列数会自动分配3.column-gap:列间距4画列线单一写法列线宽度:column-rule-width列线样式:column-rule-style列线的颜色:column-rule-color复合写法:column-rule5.列填充(列高度):column-fillbalance:让每一列的高度都是一致的,默认值auto:让每一列的高度都填充满盒子。
2024-04-16 01:40:09
1097
原创 12 圆角、动画
水平半径和垂直半径单一语法border-top-left-radius:水平半径 垂直半径复合写法border-radius:水平半径。。。/垂直半径。。。
2024-04-15 19:55:15
126
1
原创 11 响应式布局、渐变
background-image:linear-gradient(方向,颜色1,颜色2。苹果safari===》内核webkit==>前缀-webkit-谷歌chrome==》内核webkit==》前缀-webkit-火狐firefox==》内核gecko===》前缀-moz-edge==》内核webkit==》前缀-webkit-欧鹏opera==》内核blink==》前缀-o-如果加了浏览器的前缀,方向词不能写to,写的起点。IE===》内核trident==》前缀-ms-
2024-04-15 19:53:15
310
1
原创 10 过渡和2d变形
单一过渡参与的属性:transition-property过渡的时间:transition-duration延迟时间:transition-delay运动曲线:transition-timing-function逐渐慢下来:ease,默认值加速:ease-in减速:ease-out先加速后减速:ease-in-out匀速运动:linear步长运动:steps(数字)贝塞尔曲线复合:transition:需要什么写什么。
2024-04-15 19:50:35
147
1
原创 9 定位position
2.参照物:距离最近的有定位的父级元素。如果父级元素都没定位就按照浏览器窗口的第一屏。2.水平居中:left:50%;margin-left:负的自身宽度的一半。3.垂直居中:top:50%,margin-top:负的自身高度的一半。不滚动类似于相对,滚动类似于固定。1.会脱离文档流,不占据位置。1.会脱离文档流,不占据位置。2.利用偏移值调整元素的位置。2.参照物:浏览器窗口。3.层叠性:同相对。3.层叠性:同相对。
2024-04-14 23:00:00
277
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人