自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 常见的兼容问题

不同浏览器的标签默认的margin和padding不一样。 {margin:0;padding:0;} IE6双边距bug:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大。hack:display:inline;将其转化为行内属性。 渐进识别的方式,从总体中逐渐排除局部。首先,巧妙的使用“9”这一标记,将IE浏览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。 { background-color:#f1ee18

2020-10-05 08:57:25 368

原创 解释vue的响应式原理

Vue 的响应式原理是核心是通过 ES5 的保护对象的 Object.defindeProperty 中的访问器属性中的 get 和 set 方法 data 中声明的属性都被添加了访问器属性 当读取 data 中的数据时自动调用 get 方法 当修改 data 中的数据时自动调用 set 方法 检测到数据的变化,会通知观察者 Wacher 观察者 Wacher自动触发重新render 当前组件 生成新的虚拟 DOM 树 Vue 框架会遍历并对比新虚拟 DOM树和旧虚拟DOM树中每个节点的差别,并记录下来,不

2020-09-27 18:39:43 227

原创 面向对象的三大特点:封装 继承 多态

面向对象的三大特点:封装 继承 多态 类 ES6 class 关键词定义类,必须通过new关键词来调用 ES5 构造函数+原型 模拟类 1>成员的属性和方法 2>原型的属性和方法 注:以上两种都是通过this或者是实例来调用, 如果调用的方法在成员方法和属性上能找到,直接调用, 成员方法上找不到,往原型对象上找,到最后都没找到,报xx is not a function 3>静态的属性和方法 必须通过类名调用 什么是构造函数? 通过new关键词调用的函数,就是构

2020-09-25 15:02:29 229

原创 前端你必须明白的响应式布局

响应式布局 多终端(pc,m,ipad)使用一套样式结构。 缺点:首次加载速度慢(使用的是一套静态资源,静态资源要做额外的适配,而且图片要兼容pc端所以尺寸过大)。增加设计难度,pc和移动没有大的改变 前端如何实现响应式布局 通过js计算元素的宽高,当屏幕发生改变时 window.onresize 通过css的媒体查询 @media bootstrap 就是一个ui库 (栅格系统) 1.引入类名 2.加类名 m站/webapp 通过手机浏览器(微信内置浏览器,safari,手机浏览器,谷歌)访问的地址 p

2020-09-25 14:51:57 341

原创 Vue中三种常见的组件通信

父组件向子组件通信 子组件通过 props 属性,绑定父组件数据,实现双方通信 子组件向父组件通信 将父组件的事件在子组件中通过 $emit 触发 非父子组件、兄弟组件之间的数据传递 /*新建一个Vue实例作为中央事件总嫌*/ let event = new Vue(); /*监听事件*/ event.$on('eventName', (val) => { //......do something }); /*触发事件*/ event.$emit('eventName', 'this is a

2020-09-25 10:27:22 302

原创 Vue实现Tab切换效果

通过Vue实现简单的Tab切换 实现思路是点击上方的标题,下方的内容随之发生改变,上方和下方用的是两个块,是兄弟节点,所以需要点击tab标题和下方内容一一对应,基予两个模块若下标相同是一个内容实现的。 Tab切换第一步先要把HTML写好,这个第一步很关键,主要分为两块结构 <div id="App"> <ul class="tab-tilte"> <li>标题一</li> <li&gt

2020-09-24 13:55:00 9659

原创 v-model双向绑定原理 实现自定义v-model命令

v-model双向绑定原理 <input type="text" v-model="变量"> 首先,变量值和input的value属性进行单向数据绑定,value获得了变量的值 其次,通过@input="变量=$event.target.value"来将值绑定到变量上 这样就实现了双向绑定 <input type="text" v-model="变量"> 相同 <input type="text" :value="变量" @input="变量=$event.target.va

2020-09-24 08:10:39 418

原创 Vue 生命周期(简化的不能再简化了)

beforecreate => 实例刚在内存中被创建出来,还没有初始化好 data 和 methods 属性 created => 实例已经在内存中创建OK,此时 data 和 methods 已经创建OK,此时页面没有创建出来 beforeMount => 此时已经完成了模板的编译,但是还没有挂载到页面中 mounted => 此时,已经将编译好的模板,挂载到了页面指定的容器中显示 beforeUpdate => 状态更新之前执行此函数, 此时 data

2020-09-23 15:25:01 295

原创 Vue 中你可能用得到的指令

1. v-text v-text主要用来更新textContent,可以等同于JS的text属性 2. v-html 双大括号的方式会将数据解释为纯文本,而非HTML。为了输出真正的HTML,可以用v-html指令。它等同于JS的innerHtml属性。 3. v-pre v-pre主要用来跳过这个元素和它的子元素编译过程。 4. v-cloak 这个指令是用来保持在元素上直到关联实例结束时进行编译。 5.v-once v-once关联的实例,只会渲染一次。 6.v-if v-if可以实现条件渲染

2020-09-23 09:33:46 210

原创 数组 和 字符串 的所有用法

数组的用法 currentValue 必需。当前元素 index 可选。当前元素的索引值 arr可选。当前元素属于的数组对象 currentIndex可选。当前元素的索引 join()数组转字符串 arrayObject.join(separator) unshift()数组开头添加,返回数组长度 arrayObject.unshift(newelement1,newelement2,....,newelementX) shift()删除原数组第

2020-09-22 14:49:00 332

原创 数组去重的方法(简单易懂)

方法一: 这是个没有什么技术含量的方法(使用了ES6 Set数据结构) let arr = [1,1,1,1,2,3,4,5,5,6]; arr = [...new Set(arr)]; // [1,2,3,4,5,6] 方法二: for循环嵌套for循环 function unique(arr){ for(let i = 0; i<arr.length; i++) { for(let j = i+1; j < arr.length; j++) { if(arr[i]

2020-09-22 14:00:12 236

原创 Reac生命周期(简单易懂)

React 生命周期 第一个阶段:初始创建阶段 constructor() 接收父级的props,初始化state 只执行1次 componentWillMount 组件渲染前 17.0 版本即将被废除了 只执行1次 render 渲染 执行多次 dom创建或更新,触发render进行diff算法,比较最小化差异,进行更新 componentDidMount 渲染完毕 只执行一次请求数据 获取到真实的dom 第二个阶段:更新阶段 props

2020-09-22 10:54:37 427 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除