vue-routet的使用

安装

  1. cdn


    1

    2


    <script src="/path/to/vue.js"></script>

    <script src="/path/to/vue-router.js"></script>

  2. npm

    1

    npm install vue-router

如果在一个模块化工程中使用它,必须要通过 Vue.use() 明确地安装路由功能:


1

2

3

4


import Vue from ‘vue‘

import VueRouter from ‘vue-router‘

Vue.use(VueRouter)

文档的例子

html


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


<script src="https://unpkg.com/vue/dist/vue.js"></script>

<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">

<h1>Hello App!</h1>

<p>

<!-- 使用 router-link 组件来导航. -->

<!-- 通过传入 `to` 属性指定链接. -->

<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->

<router-link to="/foo">Go to Foo</router-link>

<router-link to="/bar">Go to Bar</router-link>

</p>

<!-- 路由出口 -->

<!-- 路由匹配到的组件将渲染在这里 -->

<router-view></router-view>

</div>

javascrpt


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31


// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)

// 1. 定义(路由)组件。

// 可以从其他文件 import 进来

const Foo = { template: ‘<div>foo</div>‘ }

const Bar = { template: ‘<div>bar</div>‘ }

// 2. 定义路由

// 每个路由应该映射一个组件。 其中"component" 可以是

// 通过 Vue.extend() 创建的组件构造器,

// 或者,只是一个组件配置对象。

// 我们晚点再讨论嵌套路由。

const routes = [

{ path: ‘/foo‘, component: Foo },

{ path: ‘/bar‘, component: Bar }

]

// 3. 创建 router 实例,然后传 `routes` 配置

// 你还可以传别的配置参数, 不过先这么简单着吧。

const router = new VueRouter({

routes // (缩写)相当于 routes: routes

})

// 4. 创建和挂载根实例。

// 记得要通过 router 配置参数注入路由,

// 从而让整个应用都有路由功能

const app = new Vue({

router

}).$mount(‘#app‘)

// 现在,应用已经启动了!

我的router配置


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77


import Vue from ‘vue‘

import VueRouter from ‘vue-router‘

import blog from ‘./admin/blog.vue‘

import setting from ‘./admin/setting.vue‘

import user from ‘./admin/user.vue‘

import test from ‘./admin/test.vue‘

import login from ‘./admin/login.vue‘

import index from ‘./index.vue‘

Vue.use(VueRouter);

// 1. 定义(路由)组件。

// 可以从其他文件 import 进来

const routes = [

{ path: ‘‘, component: index,

children: [

{

// 当 /user/:id/profile 匹配成功,

// UserProfile 会被渲染在 User 的 <router-view> 中

path: ‘/blog‘,

name:‘博客‘,

component: blog

},

{

// 当 /user/:id/posts 匹配成功

// UserPosts 会被渲染在 User 的 <router-view> 中

path: ‘/setting‘,

name:‘设置‘,

component: setting

},

{

path:‘/user‘,

name:‘用户管理‘,

component:user

},

{

path:‘/test‘,

name:‘测试‘,

component:test

}

]

},{

path:‘/login‘,

component:login,

meta: { requiresAuth: true }

}

]

const router = new VueRouter({

routes

})

// router.beforeEach((to, from, next) => {

// if (to.matched.some(record => record.meta.requiresAuth)) {

// // this route requires auth, check if logged in

// // if not, redirect to login page.

// alert(1111);

// if (!auth.loggedIn()) {

// next({

// path: ‘/login‘,

// query: { redirect: to.fullPath }

// })

// } else {

// next()

// }

// } else {

// next() // 确保一定要调用 next()

// }

// })

export default router

一些注意点

  • 页面跳转 router.push()

1

2

3

4

5

6

7

8

9

10

11


// 字符串

router.push(‘home‘)

// 对象

router.push({ path: ‘home‘ })

// 命名的路由

router.push({ name: ‘user‘, params: { userId: 123 }})

// 带查询参数,变成 /register?plan=private

router.push({ path: ‘register‘, query: { plan: ‘private‘ }})

  • 监听页面跳转

1

2

3

4

5


watch: {

‘$route‘ (to, from) {

//somecode

}

}

vue-routet使用笔记

2017-06-28

vue-router中文文档

安装

  1. cdn


    1

    2


    <script src="/path/to/vue.js"></script>

    <script src="/path/to/vue-router.js"></script>

  2. npm

    1

    npm install vue-router

如果在一个模块化工程中使用它,必须要通过 Vue.use() 明确地安装路由功能:


1

2

3

4


import Vue from ‘vue‘

import VueRouter from ‘vue-router‘

Vue.use(VueRouter)

文档的例子

html


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


<script src="https://unpkg.com/vue/dist/vue.js"></script>

<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">

<h1>Hello App!</h1>

<p>

<!-- 使用 router-link 组件来导航. -->

<!-- 通过传入 `to` 属性指定链接. -->

<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->

<router-link to="/foo">Go to Foo</router-link>

<router-link to="/bar">Go to Bar</router-link>

</p>

<!-- 路由出口 -->

<!-- 路由匹配到的组件将渲染在这里 -->

<router-view></router-view>

</div>

javascrpt


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31


// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)

// 1. 定义(路由)组件。

// 可以从其他文件 import 进来

const Foo = { template: ‘<div>foo</div>‘ }

const Bar = { template: ‘<div>bar</div>‘ }

// 2. 定义路由

// 每个路由应该映射一个组件。 其中"component" 可以是

// 通过 Vue.extend() 创建的组件构造器,

// 或者,只是一个组件配置对象。

// 我们晚点再讨论嵌套路由。

const routes = [

{ path: ‘/foo‘, component: Foo },

{ path: ‘/bar‘, component: Bar }

]

// 3. 创建 router 实例,然后传 `routes` 配置

// 你还可以传别的配置参数, 不过先这么简单着吧。

const router = new VueRouter({

routes // (缩写)相当于 routes: routes

})

// 4. 创建和挂载根实例。

// 记得要通过 router 配置参数注入路由,

// 从而让整个应用都有路由功能

const app = new Vue({

router

}).$mount(‘#app‘)

// 现在,应用已经启动了!

我的router配置


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77


import Vue from ‘vue‘

import VueRouter from ‘vue-router‘

import blog from ‘./admin/blog.vue‘

import setting from ‘./admin/setting.vue‘

import user from ‘./admin/user.vue‘

import test from ‘./admin/test.vue‘

import login from ‘./admin/login.vue‘

import index from ‘./index.vue‘

Vue.use(VueRouter);

// 1. 定义(路由)组件。

// 可以从其他文件 import 进来

const routes = [

{ path: ‘‘, component: index,

children: [

{

// 当 /user/:id/profile 匹配成功,

// UserProfile 会被渲染在 User 的 <router-view> 中

path: ‘/blog‘,

name:‘博客‘,

component: blog

},

{

// 当 /user/:id/posts 匹配成功

// UserPosts 会被渲染在 User 的 <router-view> 中

path: ‘/setting‘,

name:‘设置‘,

component: setting

},

{

path:‘/user‘,

name:‘用户管理‘,

component:user

},

{

path:‘/test‘,

name:‘测试‘,

component:test

}

]

},{

path:‘/login‘,

component:login,

meta: { requiresAuth: true }

}

]

const router = new VueRouter({

routes

})

// router.beforeEach((to, from, next) => {

// if (to.matched.some(record => record.meta.requiresAuth)) {

// // this route requires auth, check if logged in

// // if not, redirect to login page.

// alert(1111);

// if (!auth.loggedIn()) {

// next({

// path: ‘/login‘,

// query: { redirect: to.fullPath }

// })

// } else {

// next()

// }

// } else {

// next() // 确保一定要调用 next()

// }

// })

export default router

一些注意点

  • 页面跳转 router.push()

1

2

3

4

5

6

7

8

9

10

11


// 字符串

router.push(‘home‘)

// 对象

router.push({ path: ‘home‘ })

// 命名的路由

router.push({ name: ‘user‘, params: { userId: 123 }})

// 带查询参数,变成 /register?plan=private

router.push({ path: ‘register‘, query: { plan: ‘private‘ }})

  • 监听页面跳转

1

2

3

4

5


watch: {

‘$route‘ (to, from) {

//somecode

}

}

时间: 2024-10-13 21:52:58

vue-routet的使用的相关文章

requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?

在五一节之前和一网友讨论前端技术时,对方提到vue.vue-route如果配合requirejs应用.当时的我没有想得很明白,也没能这位网友一个准确的回复,但我许诺于他五一研究后给他一个回复.本是一天的研究却被我搞成了研究了一周,这拖延症... 闲话少数,进入正题 一.示例代码说明 代码结构说明: modules(存放的为组件,主要是模板与Js对象分成两个文件来写) route:测试子路由的组件 title:就是一个简单的显示文字的组件 app.js:核心类,提供vue的创建.以前modules

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

在浏览器上安装 Vue Devtools工具

Vue.js devtools是基于google chrome浏览器的一款调试vue.js应用的开发者浏览器扩展,可以在浏览器开发者工具下调试代码. 1)首先在github下载devtools源码,地址:https://github.com/vuejs/vue-devtools. 2)下载好后进入vue-devtools-master工程 执行cnpm install, 下载依赖,然后执行npm run build,编译源程序. 3)编译完成后,目录结构如下: 修改shells.chrome目录

vue.js 入门

简单一句话来描述:vue.js是一个前端框架. 官方文档:https://cn.vuejs.org/v2/guide/index.html 虽然,我以前也会改一些前端样式,但主要是基于HTML和CSS,HTML主要控制页面的结构,CSS主要来控制样式.涉及到JavaScript就比较小白了. 我花了一个下午照着官方文档做练习,当然是只创建一个xxx_demo.html文件,在<script></script> 标签对之间写 Vue.js语法.这不算错,但在工程化的今天,这么学得猴年

Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装).安装完成之后,打开命令行工具,输入 node -v,如果出现相应的版本号,则说明安装成功. npm包管理器,是集成在node中的,所以,直接输入 npm -v就会显示出npm的版本信息. 2.安装cnpm 在命令行中输入 npm install -g cnpm --registry=http://registr

Vue.js项目模板搭建

前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

vue项目搭建

VUE项目搭建 # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # 安装依赖,走你 $ cd my-project $ npm install $ npm run dev

Vue内容分发slot

前面的话 为了让组件可以组合,需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 “transclusion” ).Vue实现了一个内容分发 API,参照了当前 Web 组件规范草案,使用特殊的 <slot> 元素作为原始内容的插槽.本文将详细介绍Vue内容分发slot 编译作用域 在深入内容分发 API 之前,先明确内容在哪个作用域里编译.假定模板为 <child-component> {{ message }} </child-compone

一步一步学习Vue(十一)

本篇继续学习vuex,还是以实例为主:我们以一步一步学Vue(四)中讲述的例子为基础,对其改造,基于vuex重构一遍,这是原始的代码: todolist.js ; (function () { var list = []; var Todo = (function () { var id = 1; return function (title, desc) { this.title = title; this.desc = desc; this.id = id++; } })(); /** *

vue.js路由

Vue.js 路由 Vue.js 路由允许我们通过不同的 URL 访问不同的内容. 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA). Vue.js 路由需要载入 vue-router 库 中文文档地址:vue-router文档. 安装 1.直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js NPM 推荐使用淘宝镜像: cnpm install vue-route