1,在上一篇的创建工程中,使用的的模版 webpack-simple 只是创建了一个简单的demo,并没有组件和路由功能,此次采用了webpack模版,自动生成组件和路由。^_^

在模版初始化时,因为ESLint语法检查过于严格,可以暂时不要开启。

vue init webpack myapp? Install vue-router? Yes
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? Yescd myapp
npm install
npm run dev

2,安装完成后,你会发现 src 目录中多了 components 和 router 。

此时,App.vue 依然是 template、script、style三部分组成,但是在template中,你会发现多了一个router-view标签。

<template><div id="app"><h1>{{ msg }}</h1><router-view></router-view></div>
</template><script>
export default {name: 'app',data () {return {msg: '我是一个banner'}}
}
</script>

3,router目录中,自动生成了默认的index.js路由文件,其中默认的访问指向了Hello组件,我们来增加一个Game组件。

在了解不深入的时候,模仿就好了。^_^

import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'
import Game from '@/components/Game'//新增Game组件Vue.use(Router)export default new Router({routes: [{path: '/',name: 'Hello',component: Hello},{path: '/game',//新增game路由name: 'Game',component: Game}]
})

4,在components目录中,原有个Hello.vue组件文件,我们简单改写一下,再新增个Game.vue 组件。(样式已被移到html中)

a) Hello.vue

<template><div class="hello"><h2>{{ msg }}</h2><ul><li><a href="#/game">我是一个链接</a></li></ul></div>
</template><script>
export default {name: 'hello',data () {return {msg: '我是hello模块'}}
}
</script>

b) Game.vue

<template><div class="game"><h2>{{ msg }}</h2><ul><li><a href="#/">返回</a></li></ul></div>
</template><script>
export default {name: 'game',data () {return {msg: '我是game模块'}}
}
</script>

5,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 App from './App'
import router from './router'Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({el: '#app',router,template: '<App/>',components: { App }
})

6,在调试通过后,可以使用 vue run build 构建发布包。默认生成的文件(html、css、js)路径在dist,可以通过修改config目录中index.js 来决定发布代码的结构与路径。

访问效果,默认首页:http://localhost/myapp/dist/#/

点击超链接,跳转到game模块:http://localhost/myapp/dist/#/game

7,至此,一个简单的通过路由来实现组件化的前端应用demo就完成了。

因为这是一个单页应用,url是使用锚点的方式来进行页面切换的。

关于vue的配置信息,会在后续的章节中介绍,下一篇会先介绍vue中ajax的使用。

转载于:https://www.cnblogs.com/phptree/p/7197761.html

初识vue 2.0(2):路由与组件相关推荐

  1. Element 2.6.0 发布,基于 Vue 2.0 的桌面端组件库

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Element 2.6.0 发布了,Element 是一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设 ...

  2. 初识vue 2.0(5):使用props父子组件通信

    在复杂场景中,可以使用专门的状态管理模式 Vuex. 简单的场景中,可以使用一个父组件.若干个子组件来构建应用,这样通信会比使用vuex简单些: 1. 子组件的 props 选项可以接收父组件传递过来 ...

  3. vue 2.0 结合iview UI组件使用分页功能

  4. jsx怎么往js里传参数_实践Vue 3.0做JSX(TSX)风格的组件开发

    作者:莫夭 转发链接:https://zhuanlan.zhihu.com/p/102668383 前言 我日常工作都是使用React来做开发,但是我对React一直不是很满意,特别是在推出React ...

  5. vue tree组件_使用Vue 3.0做JSX(TSX)风格的组件开发

    前言 我日常工作都是使用React来做开发,但是我对React一直不是很满意,特别是在推出React Hooks以后. 不可否认React Hooks极大地方便了开发者,但是它又有非常多反直觉的地方, ...

  6. 【Vue知识点- No7.】路由、vant组件库的使用

    No7.路由.vant组件库的使用 学习目标 1.能够了解单页面应用概念和优缺点 2.能够掌握vue-router路由系统使用 3.能够掌握链接导航和编程式导航用法 4.能够掌握路由嵌套和路由守卫 5 ...

  7. Vue 2.0 起步(2) 组件及 vue-router实例 - 微信公众号RSS

    参考: Vue 2.0 起步(1) 脚手架工具 vue-cli + Webstorm 2016 + webpack vue-router官方文档 什么是组件? 下面引自官网: 组件(Component ...

  8. vue子组件mounted不执行_vue 路由子组件created和mounted不起作用的解决方法

    vue 路由子组件created和mounted不起作用的解决方法 判断项目是否启用keep-alive 启用 使用exclude排除组件(我没有成功不知道为什么) 使用v-if判断(成功解决) 可以 ...

  9. vant步进器传值_有赞开源的Vue 2.0 的 Mobile 组件库 Vant

    有赞开源的Vue 2.0 的 Mobile 组件库 Vant 是一个轻量.可靠的移动端 Vue 组件库.包括了基础组件.Button 按钮.Cell 单元格.Icon 图标.Image 图片.Layo ...

最新文章

  1. 实例讲解之校园网病毒该如何铲除
  2. c# equals与==的区别
  3. 语言抄袭广东工业大学_CUBA出现消极比赛,广东工业大学与江西师范大学被取消成绩...
  4. C++打印一个螺旋形的矩阵 a matrix traversing it spirally算法(附完整源码)
  5. java对象复制到另一个对象中_spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)...
  6. complementary prior
  7. java第一次上机_java第一次上机实验--验证码
  8. python的魅力在哪_python的优势在哪
  9. nginx学习(一):基本安装
  10. Linux网络配置的基本方法
  11. Asp.net中关于上传文件的各项基本操作
  12. 在 SQL Server 的存储过程中调用 Web 服务
  13. 人体神经系统分类图解,人体神经系统分类图片
  14. VNC远程控制软件,五大容易上手的VNC远程控制软件
  15. 摘抄笔记 centos内核优化
  16. android java标准时间_关于android:Java中格林尼治标准时间的毫秒数
  17. Bert 得到中文词向量
  18. 学习SQL的侦探游戏
  19. 第三代测序技术在微生物研究中的应用
  20. 华为2018款MateBook X Pro实现多屏协同

热门文章

  1. 如果不当程序员,你会在做什么? | 每日趣闻
  2. 在 libevent 中使用 MariaDB(MySQL)
  3. VScode快速一键生成html、vue、jsx、ajax、sass、docker等代码片段
  4. 实验三:实现一个大素数生成算法
  5. linux基础-总结题 (每日更新)
  6. go标准库的学习-crypto/sha1
  7. NTT DOCOMO将部署多供应商NFV技术
  8. 实现tap的多种方式
  9. 为centos选择国内yum软件库
  10. SQL Server索引设计 第五篇