一,v-if和v-show的区别
v-if会频繁的创建(重建),删除元素(销毁),初始切换条件为假,则什么也不做知道条件为真
v-show只是css的显示和隐藏,初始条件不管是真是假都会渲染
频繁切换用v-show好,条件不怎么变用v-if好
二,css在vue中如何避免类名相同导致样式重复的问题
在style标签中加上scoped属性
三,sass和stylus样式穿透(两者都css预处理器)
sass下载npm install sass-loader,node-sass --save
stylus下载npm install stylus stylus-loader --save
指加上scoped避免了全局污染,可要修改的样式不变,必须加上: 父元素属性/deep/子元素属性
列如:div/deep/span
四,v-model配合input,select,文本中的value使用,实现双向绑定
五,onclick在移动端游300毫秒的延迟,可以下载fastclick
下载npm install fastclick
在main.js中引入
用fastclick.attach(document.body)方法可以解决
六。vue-loader是做什么的
是.vue的加载器,没有浏览器不认识.vue
用途:让js可以写es6,template,sass等
七。NextTick是做什么的
实在下次dom更新后结束后执行延迟回调,在修改数据后使用
n
e
x
t
T
i
c
k
则
可
以
获
取
更
新
的
d
o
m
场
景
:
需
要
在
视
图
更
新
后
,
基
于
新
的
视
图
进
行
操
作
八
。
脚
手
架
的
d
a
t
a
为
甚
么
必
须
是
函
数
因
为
j
s
的
特
性
,
如
果
d
a
t
a
是
一
个
对
象
,
那
么
所
有
的
实
例
如
果
修
改
其
中
一
个
属
性
,
则
会
影
响
所
有
v
u
e
实
例
的
数
据
,
如
果
定
义
为
函
数
每
个
属
性
都
是
独
立
的
则
互
不
影
响
九
。
对
k
e
e
p
−
a
l
i
v
e
的
了
解
1.
k
e
e
p
−
a
l
i
v
e
是
内
置
组
件
,
能
在
组
件
切
换
中
保
存
状
态
,
防
止
重
复
渲
染
d
o
m
2.
k
e
e
p
−
a
l
i
v
e
不
会
再
d
o
m
中
渲
染
列
如
:
点
击
按
钮
跳
转
到
新
页
面
,
返
回
又
重
新
渲
染
,
加
上
k
e
e
p
−
a
l
i
v
e
就
可
以
避
免
3.
k
e
e
p
−
a
l
i
v
e
生
命
周
期
a
c
t
i
v
a
t
e
d
可
以
在
这
里
写
条
件
d
e
a
c
t
i
v
a
t
e
d
十
。
v
u
e
种
k
e
y
的
作
用
主
要
是
为
了
高
效
的
更
新
虚
拟
d
o
m
d
i
f
f
算
法
默
认
算
法
(
虚
拟
d
o
m
,
不
加
k
e
y
)
1
。
如
果
节
点
类
型
不
同
,
直
接
干
点
前
面
所
有
节
点
,
在
创
建
并
插
入
新
的
节
点
,
不
会
再
比
较
这
个
节
点
以
后
的
子
节
点
。
2.
如
果
节
点
类
型
相
同
,
则
会
重
新
设
置
节
点
的
属
性
,
从
而
实
现
节
点
的
更
新
举
例
:
A
B
C
D
E
,
往
B
C
之
间
插
入
F
,
A
B
不
变
,
C
变
成
F
,
D
变
成
C
,
E
变
成
D
使
用
k
e
y
给
每
个
节
点
做
一
个
唯
一
标
识
,
d
i
f
f
算
法
可
以
正
确
识
别
位
置
,
不
会
更
改
其
他
元
素
举
例
:
A
B
C
D
E
,
往
B
C
之
间
插
入
F
,
就
只
是
插
入
十
一
。
在
v
u
e
中
使
用
插
件
的
步
骤
1.
下
载
n
p
m
i
n
s
t
a
l
l
x
x
2.
引
入
i
m
p
o
r
t
x
x
f
r
o
m
‘
x
x
’
3.
配
置
<
x
x
>
<
/
x
x
>
十
二
。
w
a
t
c
h
和
c
o
m
p
u
t
e
d
的
差
异
c
o
m
p
u
t
e
d
1.
是
一
个
计
算
属
性
是
由
d
a
t
a
中
的
已
知
值
,
得
到
一
个
新
值
2.
别
人
变
化
影
响
自
身
。
3.
性
能
不
好
w
a
t
c
h
是
数
据
监
听
时
执
行
相
应
的
操
作
,
执
行
方
法
等
监
听
d
a
t
a
中
的
数
据
监
听
路
由
十
三
。
v
u
e
项
目
打
包
了
一
个
j
s
,
c
s
s
还
是
多
个
都
是
一
个
十
四
。
v
u
e
组
件
之
间
的
传
值
1.
父
组
件
传
值
到
子
组
件
父
组
件
在
子
组
件
上
自
定
义
属
性
和
自
身
数
据
连
接
起
来
子
组
件
通
过
p
r
o
p
s
:
父
组
件
在
子
组
件
的
自
定
义
属
性
拿
到
数
据
2.
子
组
件
传
值
到
父
组
件
子
组
件
通
过
/
/
第
一
个
参
数
为
给
父
组
件
自
定
义
事
件
,
第
二
个
参
数
为
子
组
件
的
值
t
h
i
s
.
nextTick则可以获取更新的dom 场景:需要在视图更新后,基于新的视图进行操作 八。脚手架的data为甚么必须是函数 因为js的特性,如果data是一个对象,那么所有的实例如果修改其中一个属性,则会影响所有vue实例的数据,如果定义为函数每个属性都是独立的则互不影响 九。对keep-alive的了解 1.keep-alive是内置组件,能在组件切换中保存状态,防止重复渲染dom 2.keep-alive不会再dom中渲染 列如:点击按钮跳转到新页面,返回又重新渲染,加上keep-alive就可以避免 3.keep-alive生命周期 activated 可以在这里写条件 deactivated 十。vue种key的作用 主要是为了高效的更新虚拟dom diff算法默认算法(虚拟dom,不加key) 1。如果节点类型不同,直接干点前面所有节点,在创建并插入新的节点,不会再比较这个节点以后的子节点。 2.如果节点类型相同,则会重新设置节点的属性,从而实现节点的更新 举例:A B C D E,往B C之间插入F,AB不变,C变成F,D变成C,E变成D 使用key给每个节点做一个唯一标识,diff算法可以正确识别位置,不会更改其他元素 举例:A B C D E,往B C之间插入F,就只是插入 十一。在vue中使用插件的步骤 1.下载 npm install xx 2.引入 import xx from ‘xx’ 3.配置 <xx></xx> 十二。watch和computed的差异 computed 1.是一个计算属性是由data中的已知值,得到一个新值 2.别人变化影响自身。 3.性能不好 watch 是数据监听时执行相应的操作,执行方法等 监听data中的数据 监听路由 十三。vue项目打包了一个js,css还是多个 都是一个 十四。vue组件之间的传值 1.父组件传值到子组件 父组件在子组件上自定义属性和自身数据连接起来 子组件通过props:{父组件在子组件的自定义属性}拿到数据 2.子组件传值到父组件 子组件通过 //第一个参数为给父组件自定义事件,第二个参数为子组件的值 this.
nextTick则可以获取更新的dom场景:需要在视图更新后,基于新的视图进行操作八。脚手架的data为甚么必须是函数因为js的特性,如果data是一个对象,那么所有的实例如果修改其中一个属性,则会影响所有vue实例的数据,如果定义为函数每个属性都是独立的则互不影响九。对keep−alive的了解1.keep−alive是内置组件,能在组件切换中保存状态,防止重复渲染dom2.keep−alive不会再dom中渲染列如:点击按钮跳转到新页面,返回又重新渲染,加上keep−alive就可以避免3.keep−alive生命周期activated可以在这里写条件deactivated十。vue种key的作用主要是为了高效的更新虚拟domdiff算法默认算法(虚拟dom,不加key)1。如果节点类型不同,直接干点前面所有节点,在创建并插入新的节点,不会再比较这个节点以后的子节点。2.如果节点类型相同,则会重新设置节点的属性,从而实现节点的更新举例:ABCDE,往BC之间插入F,AB不变,C变成F,D变成C,E变成D使用key给每个节点做一个唯一标识,diff算法可以正确识别位置,不会更改其他元素举例:ABCDE,往BC之间插入F,就只是插入十一。在vue中使用插件的步骤1.下载npminstallxx2.引入importxxfrom‘xx’3.配置<xx></xx>十二。watch和computed的差异computed1.是一个计算属性是由data中的已知值,得到一个新值2.别人变化影响自身。3.性能不好watch是数据监听时执行相应的操作,执行方法等监听data中的数据监听路由十三。vue项目打包了一个js,css还是多个都是一个十四。vue组件之间的传值1.父组件传值到子组件父组件在子组件上自定义属性和自身数据连接起来子组件通过props:父组件在子组件的自定义属性拿到数据2.子组件传值到父组件子组件通过//第一个参数为给父组件自定义事件,第二个参数为子组件的值this.emit(‘chan’,this.inputval)
父组件通过在子模板中写@chan=‘change’
在methods中写change(msg)参数就是子组件传来的值
3.兄弟组件之间的传值
在src文件夹下新建Bus.js写入如下内容
import Vue from ‘Vue’;
export default new Vue;
在子组件a中引入Bus.js
用Bus.$emit(‘事件名’,传入值msg)
在子组件b中引入Bus.js
用Bus.$on(‘事件名’,函数(msg){处理传入值msg})
十五。vue-cli中src各个文件夹的含义
assets 静态资源(图片,js,css)
components 非路由组件
views 路由组件
router 路由配置
store vuex(仓库)
App.vue 挂载的第一个组件
main.js 全局的文件