vue part4 vue-router

文档 https://router.vuejs.org/zh-cn

npm  install vue-router --save

调用

import Vue from ‘vue‘
import VueRouter from ‘vue-router‘

Vue.use(VueRouter)

流程

a. views目录内组件

b. router目录映射路由js   (路径与a中组件)

c. main.js 对象属性router

d. 标签router-link / router-view

1.基本路由

index.html

routeview 标签选中自带class .router-link-active  ,定义样式

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="stylesheet" href="./static/css/bootstrap.css">
    <title>vue_demo</title>

    <style>
      .router-link-active {
        color: red !important;
      }
    </style>

  </head>

  <body>
    <div id="app">

    </div> <!--app -->
  </body>

</html>

views/About.vue

与路由相关组件放置与views目录下

<template>
<div>about</div>
</template>

<script>
export default {

}

</script>

<style>

</style>

views/Home.vue

<template>
<div>home</div>
</template>

<script>
export default {

}

</script>

<style>

</style>

router/index.js

绑定path与对应views下的组件

/**
 * Created by infaa on 2018/9/21.
 */
import Vue from ‘vue‘
import VueRouter from ‘vue-router‘
import About from ‘../views/About.vue‘
import Home from ‘../views/Home.vue‘

Vue.use(VueRouter)

export default new VueRouter({
  routes: [
    {
      path: ‘/about‘,
      component: About
    },
    {
      path: ‘/home‘,
      component: Home
    },
    {
      path: ‘/‘,
      redirect: ‘/about‘
    }
  ]

})

app.js

使用router 方法,利用router-link  to=‘‘xxx“区分  ,router-view 自动匹配到views下的组件

<template>
  <div>
    <div class="row">
      <div class="col-xs-offset-2 col-xs-8">
        <div class="page-header"><h2>Router Basic - 01</h2></div>
      </div>
    </div>

    <div class="row">
      <div class="col-xs-2 col-xs-offset-2">
        <div class="list-group">
          <router-link to="/about" class="list-group-item">About</router-link>
          <router-link to="/home" class="list-group-item">Home</router-link>
        </div>
      </div>
      <div class="col-xs-6">
        <div class="panel">
          <div class="panel-body">
              <router-view></router-view>

          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {

}

</script>

<style>

</style>

main.js 需要注册router

/**
 * Created by infaa on 2018/9/19.
 */
import Vue from ‘vue‘
import App from ‘./App‘
import router2 from ‘./router‘

/* eslint-disable no-new */

new Vue({
  el: ‘#app‘,
  components: {App},
  template: ‘<App/>‘,
  router: router2
})

原文地址:https://www.cnblogs.com/infaaf/p/9688760.html

时间: 2024-11-09 04:59:49

vue part4 vue-router的相关文章

Vue 路由设置router

由于学习的是router1.0的设置方法,但是现在都是支持2.0的,都报错,那些方法没定义,所以只好又来研究一下router2.0. vue-router2.0对路由的设置有了很大的改变,在HTML中将之前的用a标签link path改成了直接用一个router-link标签,但是你在网页审查元素会发现它还是一个a标签,router-view没有改变,在js中也将原本的router.map 直接改成了一个数组然后在new VueRouter时直接将数组用进去,将之前的挂载由router.star

vue路由请求 router

创建一个Router.js文件 // 路由请求//声明一个常量设置路菜单// import Vue from "vue/types/index";import Vue from 'vue'import VueRouter from 'vue-router'Vue.use(VueRouter)const First={template:'<div>菜单一</div>'}const Second={template:'<div>菜单二</div&g

vue学习二:用 Vue.js + Vue Router 创建单页应用的几个步骤

通过vue学习一:新建或打开vue项目,创建好项目后,接下来的操作为: src目录重新规划——>新建几个页面——>配置这几个页面的路由——>给根实例注入路由配置 src目录重整 在项目中创建如下对应的文件 ├── App.vue // APP入口文件 ├── api // 接口调用工具文件夹 │ └── index.js // 接口调用工具 ├── components // 组件文件夹,目前为空 ├── config // 项目配置文件夹 │ └── index.js // 项目配置文

[vue]webpack&amp;vue组件工程化实践

webpack将app.vue(根节点)挂到html - 安装 npm i --save-dev [email protected] [email protected] // vue-loader: 1.解析.vue文件 2.会自动调用 vue-template-complier - webpack.config.js {test: /\.vue$/, use: 'vue-loader'}, - app.vue 1.render函数 app.vue的本质: 1.一个对象(组件,vNode) 2,

(vue.js)Vue element tab 每个tab用一个路由来管理?

(vue.js)Vue element tab 每个tab用一个路由来管理? 来源:网络整理     时间:2017/5/13 0:24:01     关键词: 关于网友提出的“ (vue.js)Vue element tab 每个tab用一个路由来管理?”问题疑问,本网通过在网上对“ (vue.js)Vue element tab 每个tab用一个路由来管理?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下: 问题: (vue.js)Vue element tab 每个tab用一个

new Vue/Vue.Component/Vue.extend的区别

刚开始学习Vue时,当我们看到创建Vue实例和创建一个组件时,会发现Vue实例的参数和组件参数是那么的相似:当我们学习路由时, 又发现Vue.extend创建的对象和自定义的组件非常的相似,那么这三者究竟是什么关系呢,对于3个对象了解清楚对后续精准编程很有意义, 因此,我们需要好好的了解一下他们的区别和使用场景 Vue.extend和Vue.component区别比较 运行示例 var PageNotFind = Vue.component("pagenotfind",{templat

vue入门 vue与react和Angular的关系和区别

一.为什么学习vue.js vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/v2/api/ 二.vue.js是什么 Vue是一个"MVVM框架(库)",和angular类似,相比angular小巧,比较容易上手 Vue是一个构建用户界面点的渐进式框架,与其他重量级框架不同的是,vue采用自底向上增量开发的设计 vue的核心库"只关注视图层",并

Vue.mixin Vue.extend(Vue.component)的原理与区别

1.本文将讲述 方法 Vue.extend Vue.mixin 与 new Vue({mixins:[], extend:{}})的区别与原理 先回顾一下 Vue.mixin 官网如下描述: Vue.mixin( mixin )全局注册一个混入,影响注册之后所有创建的每个 Vue 实例.插件作者可以使用混入,向组件注入自定义的行为. 既然可以影响到注册后的所有实例,那么该方法注入的方法和属性都存放在哪里呢(构造函数的options属性上),我们一起来看看该方法的定义 Vue.mixin = fu

vue的.vue文件是怎么run起来的(vue-loader)

vue的.vue文件是怎么run起来的(vue-loader) 引子:vue的.vue文件是怎么跑起来的? 答:通过vue-loader,解析.vue文件,在webpack解析,拆解vue组件 1.vue-loader做了什么? vue-loader是一个webpack加载器,这是vue组件的格式: <template> ... </template> <script> ... </script> <style> ... </style&g