在main.js下加入以下配置,以后在其他组件中使用this.$http就可以取代axios了
Vue.prototype.$http = axios
axios.defaults.baseURL= 'http://localhost:8881/'
//监听hash地址的变化
window.onhashchange = ()=>{
console.log("监听到hash地址的变化")
//获取hash地址
this.hashName = location.hash
}
npm install vue-router@3.5.2 -S
import VueRouter from "vue-router"
import Vue from 'vue'
//把vue-router安装为vue项目的插件
Vue.use(VueRouter)
//路由的实例对象,里面可以配置路由规则
const router=new VueRouter()
//向外共享vue-router的实例
export default router
import router from '@/router/index'
new Vue({
render: h => h(App),
router:router
}).$mount('#app')
const router=new VueRouter({
routes:[
{path:"/",redirect:"/Login"},
{path:"/Login",component:Login},
{path:"/CardEdit",component:CardEdit},
{path:"/CardWarehouse",component:CardWarehouse},
{path:"/Setting",component:Setting},
]
})
<router-link to="/CardEdit">前往卡牌编辑界面router-link>
<router-link to="/Login">前往登录界面router-link>
<router-link to="/Setting">前往个人设置界面router-link>
<router-link to="/CardWarehouse">前往卡牌仓库界面router-link>
<router-view>router-view>
routes:[
{path:"/",redirect:"/Login"},
{path:"/Login",component:Login},
{
path:"/Setting",
component:Setting,
children:[
{path:"SystemSetting",component:SystemSetting},
{path:"UserSetting",component:UserSetting},
{path:"",component:SystemSetting}
]
},
]
有时候跳转到同一个界面携带的参数可能不一样,需要将参数传递给跳转的界面使用动态路由来解决这个问题。
在path中使用冒号加上参数名的方式代表参数
router:{
routes:[
{path:"/show/:userId",coomponent:Show}
]
}
获取参数
this.$route.params.userId
可以设置路由的props属性为true,这样参数就可以直接使用了
router:{
routes:[
{path:"/show/:userId?start=10&end=20",coomponent:Show}
]
}
通过query获取查询参数(也就是?后面的参数)
this.$route.query.start
this.$route.query.start
//跳转到指定的hash地址,并且在浏览历史中添加记录
this.$router.push()
//跳转到指定的hash地址,替换之前的历史记录
this.$router.repalce()
//正数前进,负数后退
this.$router.go(n)
//前进或后退一行
this.$router.forward()
this.$router.back()
控制路由的访问权限。
主要的应用在于未登录的情况下无法访问系统后台。
router.beforeEach(function(to,from,next){
//to:将要去的界面
//from:当前的界面
//next:一个函数调用next()代表允许界面跳转
//允许跳转
next()
//强制跳转
next("/error")
//不允许跳转
next(false)
})