标签:Vue name route deep 问题 user router 路由
vue问题
#(1)vouter的addRoutes方法---用户权限
//自定义添加路由方法,防止重复添加路由
#使用后
路由结构
const user = () => import('../views/user/list')
const routeArr = [
{
path: '/user/list',
name: '用户管理',
show: 'user',
component: user,
},
]
导航守卫
const commonUser = window.localStorage.getItem('menuList')
const commonUserRoute = routeArr.filter(function (page) {
return commonUser.includes(page.show)
})
router.addRoutes(commonUserRoute)
router.beforeEach((to, from, next) => {
if (to.name === null || to.name === '') {
Message.error('您无权访问该页面!')
next({ name: 'Error' })
} else {
next()
}
})
#(2)var that=this的使用
使用事项:
axios请求中this指向这个回调函数,可以在axios请求外面设置that=this,that就会指向这个自身实例
eg:methods:{
searchMusic(){
var that=this;
axios.get("http://xxxxx.com").then(
function(res){
that.mustlist=res.data.songs;//如果使用this就会代表这个axios回调函数
}
)
}
}
`可以使用箭头函数代替函数就不会出现在实例中this指向问题`
#(3)router和route的区别
#this.$router和this.$route的区别
1.this.$router是VueRouter实例方法,是全局路由的,可以使用this.$router.push()方法跳转路由,但会留下history记录,this.$router.replace()替换路由不会留下记录
方法:
$router.push
// 命名的路由
this.$router.push({ name: 'user', params: { userId: 123 }})
// 带查询参数,变成 /register?plan=123
this.$router.push({ path: 'register', query: { plan: '123' }})
$router.go
// 页面路由跳转 前进或者后退
this.$router.go(-1) // 后退
2.this.$route是当前路由,包含了当前 URL 解析得到的信息。包含当前的路径,参数,query对象等。
方法:
1.$route.path
字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"。
2.$route.params
一个 key/value 对象,包含了 动态片段 和 全匹配片段,
如果没有路由参数,就是一个空对象。
3.$route.query
一个 key/value 对象,表示 URL 查询参数。
#(4)/deep/和>>>
在style用scoped属性实现组件的私有化时,深层样式不生效使用/deep/和>>>
/deep/可以用于各种预处理器(/deep/在vue 3.0会报错,/deep/在vue 3.0会报错)
>>>只用于css,(scss,less,scss无法解析>>>)
标签:Vue,name,route,deep,问题,user,router,路由 来源: https://www.cnblogs.com/lht1132950411/p/16129882.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。