资讯专栏INFORMATION COLUMN

vue 2 + vue-router 2 实现SPA

OBKoro1 / 3246人阅读

摘要:标签是展示我们匹配到的组件的区域。其中可以是通过创建的组件构造器,或者,只是一个组件配置对象。缩写相当于创建和挂载根实例。创建实例及配置,即。参考文献官方文档学习笔记构建单页应用最佳实战一个完整的应用起手

github项目地址请点这里。

使用 Vue.js 时,我们就已经把组件组合成一个应用了,当我们要把 vue-router 加进来,只需要配置组件和路由映射,然后告诉 vue-router 在哪里渲染它们。

先来看一下官方提供的最简单的例子:

HTML



Hello App!

Go to Foo Go to Bar

从HTML文件里面我们需要学会的是:

标签是我们要跳转的链接,to=""是必须的属性,双引号中的内容是我们接下来在JS文件中定义的路由path。

标签是展示我们匹配到的组件的区域。

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

// 1. 定义(路由)组件。
// 也可以从其他文件 import 进来
const Foo = { template: "
foo
" } const Bar = { template: "
bar
" } // 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") // 现在,应用已经启动了!

JavaScript文件主要做的事情是:

定义路由列表,即routes。

创建router实例及router配置,即router。

创建和挂载根实例。

以上只是教我们用最简单的方法使用vue-router。但实际开发过程中,首先我们的vue组件显然不会只有一个template模板这么简单,会用到vue的单文件组件;其次我们通常会希望的范围是整个页面,而不是像现在这样一直有几个碍眼的导航存在于页面上,这就需要先定义好默认状态下显示的内容。

既然是单页应用(SPA),那么整个项目有以下三个文件是必要的:

一个html文件:index.html

一个webpack打包时的入口js文件:main.js

一个根vue组件,作为其他组件的挂载点:app.vue

另外还有两个自定义组件:homepage.vue和chat.vue。我们希望的结果是他们之间互相跳转。

下面看下这几个文件的具体内容:

index.html



  
  
  
  Vue.js v2


  
  
main.js

这里我们选择把路由配置也写到main.js中,你也可以写到一个多带带的router.js中再引入到main.js中。

//引入vue、vue-router和根组件app.vue
import Vue from "vue"
import VueRouter from "vue-router"
import App from "./components/app.vue"

Vue.use(VueRouter)

// 引入自定义组件
import HomePage from "./components/homepage.vue"
import Chat from "./components/chat/chat.vue"

//定义路由
const routes = [
    //这里 path: "/" 代表应用首页显示的内容
    { path: "/", component: HomePage },
    { path: "/chat", component: Chat }
];

//创建router实例
const router = new VueRouter({
  //mode指定路由模式,默认"hash",另一种可选的模式是"history"
  mode: "hash",
  routes,
});

new Vue({
  el: "#application",
  router,
  render: h => h(App) //用render函数渲染引入的组件App.vue到index.html中的#application元素中
})


app.vue




自定义组件 homepage.vue

这个组件的内容也是进入应用默认展示的页面内容。


自定义组件 chat.vue


写完后你会发现这两个页面是互相跳转的,没错,就是这样。

一般我们会把路由信息routes提取到一个多带带的文件中,像这样:

路由信息提取到多带带文件中 route-config.js:
import HomePage from "./components/homepage.vue"
import Chat from "./components/chat/chat.vue"

export default [
    { 
        path: "/",
        component: HomePage 
    },
    { 
        path: "/chat", 
        component: Chat 
    }
];

然后在main.js中引入: import routes from "./route-config.js" 就可以了。

参考文献:

vue-router 2官方文档: http://router.vuejs.org/zh-cn/

Vue-router2.0学习笔记: https://segmentfault.com/a/11...

vue2.0构建单页应用最佳实战: https://segmentfault.com/a/11...

一个完整的vue应用 ( vuex+vue-router ) 起手: https://segmentfault.com/a/11...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81152.html

相关文章

  • Laravel-Vue-SSR-SPA 服务端渲染/单页面渲染实现骨架

    摘要:提供服务端渲染单页面渲染实现骨架同时集成打包构建文件名实现内置等套件提供端渲染方案前后端分离单页面方案前后端分离单页面方案等三种常见方案项目地址欢迎项目需求基于和提供的强大的功能组合并根据已有项目实践经验提供完整的集成方案帮助快速 Laravel-Vue-SSR-SPA 提供服务端渲染/单页面渲染实现骨架, 同时集成webpack打包构建 MD5文件名/gzip 实现, 内置 vue-...

    zr_hebo 评论0 收藏0
  • Laravel-Vue-SSR-SPA 服务端渲染/单页面渲染实现骨架

    摘要:提供服务端渲染单页面渲染实现骨架同时集成打包构建文件名实现内置等套件提供端渲染方案前后端分离单页面方案前后端分离单页面方案等三种常见方案项目地址欢迎项目需求基于和提供的强大的功能组合并根据已有项目实践经验提供完整的集成方案帮助快速 Laravel-Vue-SSR-SPA 提供服务端渲染/单页面渲染实现骨架, 同时集成webpack打包构建 MD5文件名/gzip 实现, 内置 vue-...

    U2FsdGVkX1x 评论0 收藏0
  • 使用 vue2+vue-router2+axios+es6+webpack2 完成的 SPA 个人简

    showImg(https://segmentfault.com/img/bVN5fu?w=1920&h=4878); 使用es6 vue2 webpack2 vue-router2 axios vue-awesome-swiper vue-spinner SPA 完成的个人简历访问地址:https://github.com/vqlai/vqla...欢迎star,3Q

    CloudwiseAPM 评论0 收藏0
  • vue2 + vue-router+ es6,vue2最新SPA项目实战-仿懂球帝-爆炸足球

    摘要:爆炸足球模仿懂球帝移动端官网,欢迎各位老铁地址技术栈前端后端通过设置代理的方式请求懂球帝官网获取数据项目截图安装与运行建议使用淘宝镜像服务端运行访问项目打包运行打包后代码有任何问题可以在这里提,谢谢你的支持。欢迎各位老铁,飞机票 Vue2-football—爆炸足球 模仿懂球帝移动端官网,欢迎各位老铁stargithub地址:https://github.com/vqlai/vue2....

    TigerChain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<