-
vue-router有两种传参方式
(1)通过在router.js文件中配置path的地方动态传递参数 eg: path: ‘/detail/:id’ 然后在组件内通过this.$route.params.id即可获取
(2)编程式导航router.push
(3)声明式导航
2.vue同级组件之间的传值
1.如果式兄弟组件,可以通过父元素作为中间组件进行传值,
2.通过创建一个bus,进行传值
// 创建一个文件,定义bus中间件,并导出
const bus = new Vue()
// 在一个组件中发送事件
bus.$emit('事件名称', 传递的参数)
// 在另一个组件中监听事件
bus.$on('事件名称', 得到传过来的参数)
3.vue中父组件如何获取子组件的属性和方法,子组件如何获取父组件的属性和方法
vue中通过子组件上定义ref属性来获取子组件的属性和方法
子组件中通过
p
a
r
e
n
t
来
获
取
父
组
件
的
属
性
和
方
法
4.
v
u
e
中
父
子
组
件
如
何
传
值
父
组
件
传
值
给
子
组
件
时
,
父
组
件
通
过
属
性
绑
定
的
形
式
(
v
−
b
i
n
d
)
,
把
需
要
传
递
给
子
组
件
的
数
据
,
传
递
到
子
组
件
内
部
。
子
组
件
通
过
p
r
o
p
s
接
收
父
组
件
的
数
据
(
父
传
给
子
的
数
据
,
在
子
组
件
用
p
r
o
p
s
接
收
)
子
传
父
:
在
子
组
件
内
发
射
数
据
,
在
父
组
件
内
接
收
数
据
5.
w
a
t
c
h
和
c
o
m
p
u
t
e
d
的
区
别
1
)
w
a
t
c
h
作
用
通
常
是
由
一
个
值
影
响
多
个
值
的
改
变
并
且
能
监
听
到
这
个
值
变
化
时
,
会
去
执
行
一
个
回
调
函
数
,
此
时
我
们
可
以
在
这
个
回
调
函
数
中
做
一
些
逻
辑
处
理
2
)
c
o
m
p
u
t
e
d
是
根
据
依
赖
的
值
衍
生
出
一
个
新
的
值
,
并
且
依
赖
的
值
可
以
有
多
个
,
只
有
当
被
依
赖
的
值
发
生
改
变
时
,
才
会
重
新
去
执
行
计
算
6.
v
u
e
中
的
事
件
修
饰
符
主
要
有
哪
些
?
分
别
是
什
么
作
用
.
s
t
o
p
:
阻
止
事
件
冒
泡
.
n
a
t
i
v
e
:
绑
定
原
生
事
件
.
o
n
c
e
:
事
件
只
执
行
一
次
.
s
e
l
f
:
将
事
件
绑
定
在
自
身
身
上
,
相
当
于
阻
止
事
件
冒
泡
.
p
r
e
v
e
n
t
:
阻
止
默
认
事
件
.
c
a
p
t
i
o
n
:
用
于
事
件
捕
获
10.
介
绍
下
什
么
是
k
e
e
p
−
a
l
i
v
e
k
e
e
p
−
a
l
i
v
e
是
用
于
做
组
件
缓
存
的
,
只
会
执
行
一
次
,
不
会
被
销
毁
。
被
k
e
e
p
−
a
l
i
v
e
包
裹
的
组
件
,
没
有
c
r
e
a
t
e
和
b
e
f
o
r
e
D
e
s
t
r
o
y
e
d
等
方
法
,
但
是
有
a
c
t
i
v
a
t
e
d
和
d
e
a
c
t
i
v
a
t
e
d
方
法
。
11.
v
u
e
中
如
何
解
决
页
面
不
重
新
渲
染
问
题
(
1
)
.
修
改
对
象
属
性
后
页
面
未
重
新
渲
染
可
以
使
用
t
h
i
s
.
parent来获取父组件的属性和方法 4.vue中父子组件如何传值 父组件传值给子组件时,父组件通过属性绑定的形式(v-bind),把需要传递给子组件的数据,传递到子组件内部。子组件通过props接收父组件的数据(父传给子的数据,在子组件用props接收) 子传父:在子组件内发射数据,在父组件内接收数据 5.watch和computed的区别 1)watch作用通常是由一个值影响多个值的改变并且能监听到这个值变化时,会去执行一个回调函数,此时我们可以在这个回调函数中做一些逻辑处理 2)computed是根据依赖的值衍生出一个新的值,并且依赖的值可以有多个,只有当被依赖的值发生改变时,才会重新去执行计算 6.vue中的事件修饰符主要有哪些?分别是什么作用 .stop: 阻止事件冒泡 .native: 绑定原生事件 .once: 事件只执行一次 .self:将事件绑定在自身身上,相当于阻止事件冒泡 .prevent: 阻止默认事件 .caption: 用于事件捕获 10.介绍下什么是keep-alive keep-alive是用于做组件缓存的,只会执行一次,不会被销毁。被keep-alive包裹的组件,没有create和beforeDestroyed等方法,但是有activated和deactivated方法。 11.vue中如何解决页面不重新渲染问题 (1).修改对象属性后页面未重新渲染可以使用 this.
p
a
r
e
n
t
来
获
取
父
组
件
的
属
性
和
方
法
4
.
v
u
e
中
父
子
组
件
如
何
传
值
父
组
件
传
值
给
子
组
件
时
,
父
组
件
通
过
属
性
绑
定
的
形
式
(
v
−
b
i
n
d
)
,
把
需
要
传
递
给
子
组
件
的
数
据
,
传
递
到
子
组
件
内
部
。
子
组
件
通
过
p
r
o
p
s
接
收
父
组
件
的
数
据
(
父
传
给
子
的
数
据
,
在
子
组
件
用
p
r
o
p
s
接
收
)
子
传
父
:
在
子
组
件
内
发
射
数
据
,
在
父
组
件
内
接
收
数
据
5
.
w
a
t
c
h
和
c
o
m
p
u
t
e
d
的
区
别
1
)
w
a
t
c
h
作
用
通
常
是
由
一
个
值
影
响
多
个
值
的
改
变
并
且
能
监
听
到
这
个
值
变
化
时
,
会
去
执
行
一
个
回
调
函
数
,
此
时
我
们
可
以
在
这
个
回
调
函
数
中
做
一
些
逻
辑
处
理
2
)
c
o
m
p
u
t
e
d
是
根
据
依
赖
的
值
衍
生
出
一
个
新
的
值
,
并
且
依
赖
的
值
可
以
有
多
个
,
只
有
当
被
依
赖
的
值
发
生
改
变
时
,
才
会
重
新
去
执
行
计
算
6
.
v
u
e
中
的
事
件
修
饰
符
主
要
有
哪
些
?
分
别
是
什
么
作
用
.
s
t
o
p
:
阻
止
事
件
冒
泡
.
n
a
t
i
v
e
:
绑
定
原
生
事
件
.
o
n
c
e
:
事
件
只
执
行
一
次
.
s
e
l
f
:
将
事
件
绑
定
在
自
身
身
上
,
相
当
于
阻
止
事
件
冒
泡
.
p
r
e
v
e
n
t
:
阻
止
默
认
事
件
.
c
a
p
t
i
o
n
:
用
于
事
件
捕
获
1
0
.
介
绍
下
什
么
是
k
e
e
p
−
a
l
i
v
e
k
e
e
p
−
a
l
i
v
e
是
用
于
做
组
件
缓
存
的
,
只
会
执
行
一
次
,
不
会
被
销
毁
。
被
k
e
e
p
−
a
l
i
v
e
包
裹
的
组
件
,
没
有
c
r
e
a
t
e
和
b
e
f
o
r
e
D
e
s
t
r
o
y
e
d
等
方
法
,
但
是
有
a
c
t
i
v
a
t
e
d
和
d
e
a
c
t
i
v
a
t
e
d
方
法
。
1
1
.
v
u
e
中
如
何
解
决
页
面
不
重
新
渲
染
问
题
(
1
)
.
修
改
对
象
属
性
后
页
面
未
重
新
渲
染
可
以
使
用
t
h
i
s
.
set(对象名称, ‘属性名’, ‘属性值’)
(2).使用this.
KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 27: …()方法可重新渲染页面 **#̲#生命周期** 1.什么是生…
route和$router的区别
r
o
u
t
e
是
“
路
由
信
息
对
象
”
,
包
括
p
a
t
h
,
p
a
r
a
m
s
,
h
a
s
h
,
q
u
e
r
y
,
f
u
l
l
P
a
t
h
,
m
a
t
c
h
e
d
,
n
a
m
e
等
路
由
信
息
参
数
。
而
route是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。而
r
o
u
t
e
是
“
路
由
信
息
对
象
”
,
包
括
p
a
t
h
,
p
a
r
a
m
s
,
h
a
s
h
,
q
u
e
r
y
,
f
u
l
l
P
a
t
h
,
m
a
t
c
h
e
d
,
n
a
m
e
等
路
由
信
息
参
数
。
而
router是“路由实例”对象包括了路由的跳转方法,钩子函数等
10.vue.js的两个核心
数据驱动,组件系统
11.vue几种常用的指令
v-if v-for v-bind v-on v-show v-else
12.怎么定义vue-router的动态路由?怎么获取传过来的值
在router目录下的index.js文件中,对path属性加上/:id,使用router对象的params.id获取
13.Vuex的原理和使用
vuex可以理解为一个公共的的状态库,可以在所有的组件里去使用去修改。Vuex有五个属性:state、getters、mutations、actions、module
state包含了多个状态的数据,mutations突变 同步操作,可以修改state里面的数据,action类似于mutation,不同在于action提交的是mutation,
而不是直接变更状态,并且action可以包含任意异步操作