-
Vue如何去除url 的 #
vue-router
中默认使用的是hash
模式,所以在路由加载的时候,项目中url
会自带#
。如果不想使用#
,可以使用vue-router
的另一种模式history
new Router({ mode: 'history', routes: [ ] })
-
Vue生命周期的理解
vue
实例有一个完整的生命周期,生命周期也就是指一个实例从开始创建都销毁的这个过程beforeCreate()
在实例创建之前执行,数据未加载状态creacted()
在实例创建、数据加载后,能初始化数据,dom
渲染之前执行beforeMount()
虚拟dom
已创建完成,在数据渲染前最后一次更新数据mounted()
页面、数据渲染完成,真实dom
挂载完成beforeUpdate()
重新渲染之前触发updated()
数据已经更新完成,dom
也重新render
完成,更新数据会陷入死循环beforeDestory()
和destoryed()
前者是销毁前执行(实力依然完全可用),后者则是销毁后执行
-
v-if 和 v-show的区别
使用了v-if
的时候,如果值为false
,那么页面将不会有这个html
标签生成。v-show
则是不管值为false
还是true
,html
元素都会存在,只是css
中的display
显示或隐藏 -
$route 和 $router 的区别
$router 为VueRouter
实例,想要导航到不同url
,则使用 $router.push
$route 为当前router
跳转对象里面可以获取name
、path
、query
、params
等 -
vue-router使用params与query传参有什么区别
vue-route
r可以通过params
与query
进行传参// 传递 this.$router.push({path: './xxx', params: {xx:xxx}}) this.$router.push({path: './xxx', query: {xx:xxx}}) // 接收 this.$route.params this.$route.query
params
是路由的一部分,必须要有。query
是拼接在url后面的参数,没有也没关系
params
不设置的时候,刷新页面或者返回参数会丢失,query
则不会有这个问题