# 快问快答 Q&A

# Q: 盒子阴影被遮盖?
# A: 添加position非static,然后添加z-index层级高于遮盖元素即可。

# Q: 已经设置的伪元素怎么删除?
# A: content修改为none。

# Q: 子元素position为absolute时如何撑开父元素(高度)?
# A: 子元素脱离文档流,无法撑开,需要通过JS设置高度。

# Q: 怎么通过伪元素设置svg图标?
# A: 可以引入iconfont设置字体样式,也可以设置背景background: url('...') no-repeat。

# Q: HTML文档边缘有空隙?
# A: 在最外层body设置css样式margin: 0和padding: 0。

# Q: 删除input点击输入时的边框?
# A: 添加outline: none。

# Q: input标签和button标签同行无法对齐?
# A: 添加vertical-align。

# Q: 如何解决padding后尺寸被拉开?
  1. box-sizing: border-box;
  2. calc()将多出部分减掉。

# Q: $parent注意?
# A: 组件在不同场景使用会具有不同的父组件,有风险,尽量少使用。

# Q: $children为什么在vue3中被移除?
# A: vue中的数据是单向数据流,只允许父向子流动,而$children违背了这一原则,在Vue3重写时删除了该API。

# Q: 什么是同源?
# A: 协议、域名、端口 都相同即同源。

# Q: 如何跨域?
  1. JSONP
  2. CORS
  3. WebSocket

# Q: Changes not staged for commit:?
# A: commit前请先add到暂存区。

# Q: v-slot?
# A: 具名插槽,用法v-slot:name,简写 #,同时他也可以表示传递props的作用于插槽(子传父)。

# Q: v-for中:key的作用是?
# A: 添加组件的唯一标识,方便diff算法快速识别

# Q: watch监听对象的属性值变化没有效果?
# A: 对象是引用类型,监听的只是它的引用值,属性的改变不会引起引用的改变,所以需要深度监听。

# Q: 生命周期created特点?
# A: 实例已创建,data可访问,$el 还为undefined,只完成了数据的观测,属性和方法的运算,watch/event事件回调,渲染模板成html(虚拟,虚拟完成后才是实体)前,故数据初始化(比如字典,列表数据等)最好在这段完成。

# Q: 如何获得一个组件的名字?
# A: 通过访问vue组件的$options.name

# Q: 对组件标签使用@click没有效果?
# A: 组件标签上@会默认匹配组件内部$emit的自定义事件,如果监听组件的原生事件需要加.native修饰符。

# Q: 父组件动态传入绑定的属性子组件的props没有更新?
# A: 可以为子组件绑定key标识,key作为diff算法识别组件的唯一标识,key的变化会认为不是同一个组件,从而引起子组件的重新加载。还可以深度监听props属性,检测到props的变化进行进一步操作。

# Q: ?
# A: 。

Bathroom Mirror / You're Coming Right?
Justin Hurwitz