有事没事领个红包

Vue 路由

1 关键部分

1) map:什么地址访问什么样的页面。 2) router-view : 什么位置显示指定页面或组件。3)router-link 在页面中如何跳转到指定页面。

 

2 使用步骤

1) 安装路由

cnpm install vue-router --save

 

2) 将路由插件引入项目中,修改 main.js 文件

import VRouter from 'vue-router'

Vue.use(VRouter);

3) 配置路由表,访问url 显示对应的组件

复制代码
let router = new VRouter({
  mode: 'history',
  routes: [
    {
      path: '/apple',
      component: Apple
    },
    {
      path: '/banana',
      component: Banana
    }
  ]
})
复制代码

4)将路由表注册到 Vue 的根实例中,这样在任何位置都可以访问该路由表。

new Vue({
  el: '#app',
  router,
  components: {
    todoList:TodoList
  },
  template: '<todoList></todoList>'
})

说明:注册到根实例时需要使用router 作为键值,Router 对象作为值。

 

5) 在页面中指定显示位置

<div>
        <router-link :to="{path: 'apple'}">apple</router-link>
        <router-link :to="{path: 'banana'}">banana</router-link>
        <br/>
        <router-view></router-view>
      </div>

 

完整文件内容如下

main.js

复制代码
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import TodoList from './TodoList'
import VRouter from 'vue-router'
import Banana from './components/banana'
import Apple from './components/Apple'

Vue.use(VRouter);

Vue.config.productionTip = false

let router = new VRouter({
  mode: 'history',
  routes: [
    {
      path: '/apple',
      component: Apple
    },
    {
      path: '/banana',
      component: Banana
    }
  ]
})

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: {
    todoList:TodoList
  },
  template: '<todoList></todoList>'
})
View Code
复制代码

 

第一个组件:TodoList.vue

复制代码
<template>
    <div>
      <div>
        <router-link :to="{path: 'apple'}">apple</router-link>
        <router-link :to="{path: 'banana'}">banana</router-link>
        <br/>
        <router-view></router-view>
      </div>
      <input v-model="inputValue"/>
      <button @click="addItem">提交</button>
      <ul>
        <todo-item
          v-for="(item, index) of todoList"
          :key="index" :content="item"
          :index="index"
          @deleteItem="deleteItem"
        >

        </todo-item>
      </ul>
    </div>

</template>

<script>
import TodoItem from './components/TodoItem'


export default {
  components: {
    'todo-item':TodoItem
  },
  data () {
    return {
      inputValue: '',
      todoList: []
    }
  },
  methods:{
    addItem () {
      this.todoList.push(this.inputValue);
      this.inputValue= '';
    },
    deleteItem (index) {
      this.todoList.splice(index,1);
    }
  }

}
</script>

<style>
</style>
View Code
复制代码

 

posted @   crazyCodeLove  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2017-07-30 windows环境安装tensorflow
点击右上角即可分享
微信分享提示