• 【Vue 路由(route) 一】介绍、基本使用、嵌套路由


    目录

     

    前言

    一、介绍、安装

    1.定义

    2.安装

    1:在src根目录创建router目录,在目录中创建index.js,代码如下:

    2:main.js 中进行挂载

    二、基本使用(代码后赋)

    展示效果

    代码(看对应的代码段)

    app.vue代码,此代码含有样式

    三个路由组件的代码

    router

    三、嵌套路由

    1.布局逻辑

    2.效果展示

     3.代码

    about

     两个路由组件

    四、注意


    前言

    想要学习完整内容请关注主页的专栏————>Vue学习

    本次的代码段是结合体,被我分开发文,我以在看代码段时,已经截图展示,所看部分

    一、介绍、安装

    1.定义

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。

    路由:route        一组key-v的对应关系(路径的改变对应的组件进行切换)

    路由器:router    多个路由需要路由器管理

    为了实现单页面应用

    2.安装

    npm i vue-router@3   安装3版本

    如果使用 vue ui 就没有以下的操作,因为在创建项目的时候已经配置好了

    1:在src根目录创建router目录,在目录中创建index.js,代码如下:

    1. import Vue from 'vue';
    2. //导入vue-router
    3. import VueRouter from 'vue-router'
    4. //应用插件
    5. Vue.use(VueRouter)
    6. //创建router规则对象
    7. const routes = [
    8. ]
    9. //创建router
    10. const router = new VueRouter({
    11. routes
    12. })
    13. //导出router
    14. export default router

    2:main.js 中进行挂载

    1. import Vue from 'vue'
    2. import App from './App.vue'
    3. import router from './router'
    4. Vue.config.productionTip = false
    5. new Vue({
    6. router,
    7. render: h => h(App)
    8. }).$mount('#app')

    二、基本使用(代码后赋)

    以下例子展现路由的基本使用

    css样式已经写好了,直接实现路由效果

    展示效果

    首先学习的效果

    a743d40856164a5d919350fbf1bbc6e4.gif

     53519f75c0f34dd892d50c2016be561d.png

    a22d986709ed44fe81e2f90b021abcc2.png

     d113c48804da4c0faa074fcb9d16edf4.png

    2ca35bcf17f54ed785eb7b0a905b6f23.png

    代码(看对应的代码段)

    app.vue代码,此代码含有样式

    1. <script>
    2. export default {
    3. name:'App',
    4. methods: {
    5. back(){
    6. this.$router.back()
    7. }
    8. },
    9. components:{
    10. },
    11. }
    12. script>
    13. <style>
    14. .c{
    15. clear: both;
    16. }
    17. *{
    18. margin: 0px;
    19. padding: 0px;
    20. }
    21. li{
    22. list-style: none;
    23. }
    24. a{text-decoration: none;}
    25. .main{width: 800px;margin: auto;}
    26. .header{box-sizing: border-box;padding: 20px;border:1px solid #666;}
    27. .left{
    28. height: 500px;
    29. border: 1px solid #666;
    30. width: 200px;
    31. float: left;
    32. }
    33. .left li{
    34. height: 50px;
    35. line-height: 50px;
    36. text-align: center;
    37. border-bottom: 1px solid #666;
    38. width: 100%;
    39. }
    40. .left li a{
    41. color: #333;display: block;
    42. }
    43. .left li a.hover{
    44. background: blue;color: #fff;
    45. }
    46. .right{float: right;
    47. border:1px solid #61DAFB;
    48. width: 590px;
    49. height: 500px;
    50. }
    51. .nav li{
    52. float: left;
    53. }
    54. .nav li a{
    55. width: 150px;
    56. text-align: center;
    57. height: 40px;line-height: 40px;
    58. text-align: center;
    59. border:1px solid #000000;
    60. display: block;
    61. }
    62. .nav li a.hover{
    63. background: #0000FF;color: #fff;
    64. }
    65. style>

    三个路由组件的代码

    about

    1. <script>
    2. export default {
    3. name: 'About',
    4. data() {
    5. return {
    6. };
    7. },
    8. mounted() {
    9. },
    10. methods: {
    11. },
    12. };
    13. script>
    14. <style scoped>
    15. style>

    ContaactUs 

    1. <script>
    2. export default {
    3. name: 'ContaactUs',
    4. data() {
    5. return {
    6. };
    7. },
    8. mounted() {
    9. },
    10. methods: {
    11. },
    12. };
    13. script>
    14. <style scoped>
    15. style>

    persons