• 技术文章 >web前端 >js教程

    vue中SPA单页面应用程序详解

    php中世界最好的语言php中世界最好的语言2018-04-14 17:08:21原创2905

    这次给大家带来vue中SPA单页面应用程序详解,使用vue中SPA单页面应用程序的注意事项有哪些,下面就是实战案例,一起来看一下。

    一、SPA的概述

    SPA(single page application)单页面应用程序,在一个完成的应用或者站点中,只有一个完整的html页面,这个页面有一个容器,可以把需要加载的代码片段插入到该容器中。

    SPA的工作原理:

      eg: http://127.0.0.1/index.html#/start

    ①根据地址栏中url解析完整的页面:index.html
      加载index.html

    ②根据地址栏中url解析#后的路由地址: start
      根据路由地址,去在当前应用的配置中 找该路由地址的配置对象去查找该路由地址 所对应的模板的页面地址
      发起异步请求加载该页面地址

    ③把请求来的数据加载到指定的容器中

    二、通过VueRouter来实现一个SPA的基本步骤

    ①引入对应的vue-router.js(该文件我已经上传到我的文件中)
    ②指定一个盛放代码片段的容器

    <router-view></router-view>

    ③创建业务所需要的各个组件
    ④配置路由词典
    每一个路由地址的配置对象(要加载哪个页面...)

    const myRoutes = [
      {path:'/myLogin',component:TestLogin},
      {path:'/myRegister',component:TestRegister}
      ]
      const myRouter = new VueRouter({
      routes:myRoutes 
      })
      new Vue({
        router:myRouter 
      })

    ⑤测试
    在地址栏中 输入对应的不同的路由地址 确认是否能够加载对应的<!doctype html>

    <html>
     <head>
     <meta charset="UTF-8">
     <title></title>
      <script src="js/vue.js"></script>
    <!-- 引入文件 -->
      <script src="js/vue-router.js"></script>
     </head>
     <body>
     <p id="container">
        <p>{{msg}}</p>
    <!--通过router-view指定盛放组件的容器 -->
        <router-view></router-view>
      </p>
      <script>
        var testLogin = Vue.component("login",{
          template:`
            <p>
              <h1>这是我的登录页面</h1>
            </p>
          `
        })
        var testRegister = Vue.component("register",{
          template:`
            <p>
              <h1>这是我的注册页面</h1>
            </p>
          `
        })
        //配置路由词典
        //对象数组
        const  myRoutes =[
        //当路由地址:地址栏中的那个路径是myLogin访问组件
        //组件是作为标签来用的所以不能直接在component后面使用
        //要用返回值 
          //path:''指定地址栏为空:默认为Login页面
            {path:'',component:testLogin},
          {path:'/myLogin',component:testLogin},
          {path:'/myRegister',component:testRegister}
        ]
        const myRouter = new VueRouter({
          //myRoutes可以直接用上面的数组替换
          routes:myRoutes
        })
        new Vue({
          router:myRouter,
          //或者:
          /*
            router:new VueRouter({
                routes:[
                  {path:'/myLogin',component:testLogin},
          {path:'/myRegister',component:testRegister}
                ]
            })
          */
          el:"#container",
          data:{
            msg:"Hello VueJs"
          }
        })
      </script>
     </body>
    </html>
    <!doctype html>
    <html>
     <head>
     <meta charset="UTF-8">
     <title>SPA练习</title>
      <script src="js/vue.js"></script>
      <script src="js/vue-router.js"></script>
     </head>
     <body>
     <p id="container">
        <p>{{msg}}</p>
        <router-view></router-view>
      </p>
      <script>
      /*
        需要大家创建一个SPA,这个SPA有3个组件,分别对应的是collect/detail/order
        功能需求:
        在地址栏中路由地址是:
        /myColllect --> 收藏页组件
        /myDetail --> 详情页组件
        /myOrder --> 订单页组件
      */
      /*
        1、引入js文件
        2、创建三个组件,需要返回值
        3、路由词典配置(三小步)const myRoutes、const myRouter、router:myRouter,
        4、指定一个盛放代码片段的容器
              <router-view></router-view>
      */
        var testCollect = Vue.component("collect",{
          template:`
            <p>
              <h1>这是收藏页</h1>
            </p>
          `
        })
        var testDetail = Vue.component("detail",{
          template:`
            <p>
              <h1>这是详情页</h1>
            </p>
          `
        })
        var testOrder = Vue.component("order",{
          template:`
            <p>
              <h1>这是订单页</h1>
            </p>
          `
        })
        const myRoutes = [
            {path:"",component:testCollect},
            {path:"/myColllect",component:testCollect},
            {path:"/myDetail",component:testDetail},
            {path:"/myOrder",component:testOrder},
        ]
        const myRouter = new VueRouter({
          routes:myRoutes
        })
        new Vue({
          router:myRouter,
          el:"#container",
          data:{
            msg:"Hello VueJs"
          }
        })
      </script>
     </body>
    </html>

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    mint-ui loadmore上拉加载与下拉刷新冲突处理方法

    微信小程序怎样使图片上传至服务器

    以上就是vue中SPA单页面应用程序详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:应用程序 详解 页面
    上一篇:Vue.js移动端组件库使用方法 下一篇:vue-router组件间参数相互传递的方法
    千万级数据并发解决方案

    相关文章推荐

    • JavaScript高级语法学习之严格模式• angular学习之浅析HttpClientModule模块• angular学习之路由模块浅析• 浅谈Node第三方框架Express的使用方法• JavaScript学习理解之JSON(总结分享)
    1/1

    PHP中文网