目前前端流行的l三大框架,都有自己的路由实现:
笔者这里长个小小的见识,因为我只知道vue-router(哈哈)
npm install vue-router --save
手动创建一下router文件夹,router文件夹下创建index.js文件,这个文件里面则是关于路由相关的信息
·
router下面的index.js
//1.导入路由模块
import Vuerouter from 'vue-router'
import Vue from 'vue'
//2.通过Vue.use(插件),安装插件
Vue.use(Vuerouter)
//3.创建路由对象
const router = new Vuerouter({
//配置路由和组件之间的应用关系
routes:[
]
})
//4.将router对象传入Vue实例中
export default router
main.js
import Vue from 'vue'
import App from './App'
//导入router
import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,//挂载在Vue中
render: h => h(App)
})
router 下 index.js
//全局组件,可以看成a标签
<router-link></router-link>
//渲染出来的组件内容位置
<router-view></router-view>
App.vue
<template>
<div id="app">
<router-link to="/Home">首页</router-link>
<router-link to="/About">关于</router-link>
<router-view/>
</div>
</template>
<script>
export default {
name: 'App',
}
</script>
<style>
</style>
将a标签渲染成button
<router-link to='/Home' tag = 'button'></router-link>
<router-link to='/Home' relpace ></router-link>
<router-link to='/Home' active-class="active"></router-link>
const router = new Vuerouter({
linkActiveClass:'active'
})
router下的index.js
routes:[
{
path:'',
//重定向
redirect:'/Home'
},
{
path:'/Home',
component:Home
},
{
path:'/About',
component:About
}
router下的index.js
const router = new Vuerouter({
//修改模式
mode:'history'
})
<template>
<div id="app">
<button @click="homeclick"> 主页</button>
<button @click="aboutclick"> 关于</button>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'App',
methods:{
homeclick(){
this.$router.push('/Home')
//不仅仅有push,还可以使用replace
},
aboutclick(){
this.$router.push('/About')
}
}
}
</script>
<style>
</style>
//1.导入路由模块
import Vuerouter from 'vue-router'
import Vue from 'vue'
import User from '../components/User'
//2.通过Vue.use(插件),安装插件
Vue.use(Vuerouter)
//3.创建路由对象
const router = new Vuerouter({
//配置路由和组件之间的应用关系
routes:[
//新增组件User
{
path:'/User/:id',
component:User
}
]
})
//4.将router对象传入Vue实例中
export default router
3.在App.vue中添加标签,实现跳转
<template>
<div id="app">
<button @click="userclick"> 用户</button>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'App',
methods:{
userclick(){
//这里在跳转的时候,要注意拼接想你想拼接的字符
this.$router.push('/User/zhangsan')
}
}
}
</script>
<style>
</style>
这里的route是指当前活跃的路由对象,后面的“.id”是根据你在router 下的index.js中配置的内容
<template>
<div>
<p>这里显示用户信息</p>
<p>我是
{{this.$route.params.id}}</p>
</div>
</template>
<script>
export default {
name: "User"
}
</script>
<style scoped>
</style>
–by 小码笔记