实习僧面经
垂直居中的几种方法
文字超出省略
一行内容
overflow:hidden; //超出的文本隐藏
text-overflow:ellipsis; //溢出用省略号显示
white-space:nowrap; //溢出不换行
两行内容
overflow: hidden;
text-overflow: ellipsis;
display:-webkit-box; //作为弹性伸缩盒子模型显示。
-webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
-webkit-line-clamp:2; //显示的行
cookie vs localstorge vs sessionstorge
http的状态码
vue生命周期,Dom在那个阶段完成
vue的模版指令
vue的修饰符
表单修饰符
- .lazy在我们输入完所有东西,光标离开才更新视图。
- .trim过滤首尾的空格
- .number限制输入的只能是数字
<input type="text" v-model="value">
<input type="text" v-model.lazy="value">
<input type="text" v-model.trim="value">
<input type="text" v-model.number="value">
<p>{{value}}</p>
事件修饰符
- .stop一键阻止事件冒泡,简直方便得不行。相当于调用了event.stopPropagation()方法。
- .prevent用于阻止事件的默认行为,例如,当点击提交按钮时阻止对表单的提交。相当于调用了event.preventDefault()方法。
- .self只当事件是从事件绑定的元素本身触发时才触发回调。
- .once绑定了事件以后只能触发一次,第二次就不会触发。
- .capture事件触发从包含这个元素的顶层开始往下触发。
- .passive
- .native该修饰符的作用就是把一个vue组件转化为一个普通的HTML标签,注意:使用.native修饰符来操作普通HTML标签是会令事件失效的。
鼠标按键修饰符
- .left 左键点击
- .right 右键点击
- .middle 中键点击
键值修饰符
- .keyCode
//普通键
.enter
.tab
.delete //(捕获“删除”和“退格”键)
.space
.esc
.up
.down
.left
.right
//系统修饰键
.ctrl
.alt
.meta
.shift
<input type="text" @keyup.ctrl="shout(4)">
.exact
场景我们只需要或者只能按一个系统修饰键来触发(像制作一些快捷键的时候),而当我们按下ctrl和其他键的时候则无法触发。那就这样写。
<button type="text" @click.ctrl.exact="shout(4)">ok</button>
v-bind修饰符
.camel渲染为驼峰名
.sync
双向绑定事件, v-bind 和 @update的语法糖
//父亲组件
<comp :myMessage="bar" @update:myMessage="func"></comp>
//js
func(e){
this.bar = e;
}
//子组件js
func2(){
this.$emit('update:myMessage',params);
}
现在这个.sync修饰符就是简化了上面的步骤
//父组件
<comp :myMessage.sync="bar"></comp>
//子组件
this.$emit('update:myMessage',params);
注意
- 使用sync的时候,子组件传递的事件名必须为update:value,其中value必须与子组件中props中声明的名称完全一致(如上例中的myMessage,不能使用my-message)
- 注意带有 .sync 修饰符的 v-bind 不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title + ‘!’” 是无效的)。取而代之的是,你只能提供你想要绑定的属性名,类似 v-model。
- 将 v-bind.sync 用在一个字面量的对象上,例如 v-bind.sync=”{ title: doc.title }”,是无法正常工作的,因为在解析一个像这样的复杂表达式的时候,有很多边缘情况需要考虑。
v-for中key的作用
使用v-for
更新已渲染的元素列表时,默认用就地复用
策略;列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素; 我们在使用的使用经常会使用index
(即数组的下标)来作为key
,但其实这是不推荐的一种使用方法。
v-if和v-show的区别
- v-show 不管条件是真还是假,第一次渲染的时候都会编译出来,也就是标签都会添加到DOM中。之后切换的时候,通过
display: none
;样式来显示隐藏元素。可以说只是改变css的样式,几乎不会影响什么性能。 - v-if 在首次渲染的时候,如果条件为假,什么也不操作,页面当作没有这些元素。当条件为真的时候,开始局部编译,动态的向DOM元素里面添加元素。当条件从真变为假的时候,开始局部编译,卸载这些元素,也就是删除。