zoukankan      html  css  js  c++  java
  • 单页面和多页面探究

    写在前边:

      近期涉及到Vue项目中单页面改多页面的需求,然后自己还是有点一知半解,为什么写博客呢?

      一是为了总结涉及到的技术使用情况,更加深入的去理解,到底是怎么去改写和其中涉及到一些其他的内容。

      二是帮助将来有需要的朋友,可以进行参考。

    一、参考

      想到单页面和多页面的区别,第一时间还是去百度借鉴。从网上看到一般是一张表格,列举了其中的区别,具体到

      单页面和多页面的转换和一些其他的扩展(SEO,webpack等)还是比较少的。

    二、单页面应用(SPA)

      1.概念

      什么是单页面应用?单页面应用的全称是 single-page application ,简称SPA,他是一种网站应用模型,他可以动态的重写当前的页面来与用户交互,不需要加载整个页面。

      相对比传统的web应用,单页面做到了前后端分离,后端只负责处理数据、提供接口,页面逻辑和页面渲染后交给了前端。单页面应用意味着前端掌握了主动权,

      也让前端代码更加复杂和庞大,模块化,组件化以及架构设计都变得越来越重要。

      2.工作原理

      在单页面应用构建时,路由起到的重要的作用,下边是vue项目中简单的路由:

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    
    Vue.use(VueRouter)
      const routes = [
      {
        path: '/demo',
        name: 'Demo',
        component: () => import( '../views/demo')
      },
      {
        path: '/copy',
        name: 'Copy',
        component: () => import( '../views/copy')
      }
    ]
    const router = new VueRouter({
      routes
    })
    export default routes

      我们在本地访问http://localhost:8080/#/demo,当我们想进入到copy页面我们可以访问http://localhost:8080/#/copy

    三、多页面应用(MPA)

      1.概念: 有多个.html文件之间相互跳转的应用

      本质上说多页面是从单页面应用过来的

      假设

      pageA    pageB

      pageA.html -> pageB.html

      pageA中会有公共的部分,会有单页面中局部刷新的部分,就像是轮播图,自行想象。

      2.从单页面应用 ->多页面应用

      (1)目录结构

        -views

          --goodList

            ---mian.js    //入口文件

            ---app.vue 

            ---good.js   //路由

            ---index.vue  //实际操作页面

          --user 

            ---mian.js    //入口文件

            ---app.vue 

            ---good.js   //路由

            ---index.vue  //实际操作页面

        -vue.config.js

        module.exports = {

          entry: {

            goodList: './src/views/goodList/main.js',

            user: './src/views/user/main.js',

            }

        }

        当然在实际工作中一般会给views进行拆分,也会配置webpack,将来会出一期webpack的配置

        这边给大家提供一个思路,按照不同的模块拆,比如说路由,views可以专注渲染页面。

      (2)运行

        http://localhost:8080/user.html 注意是这种方式访问网址,跳转也是从一个.html到另一个.html

    四、单页面应用和多页面应用的区别

      一个老生常谈的问题

    比较
    多页应用模式MPA
    单页应用模式SPA
    应用构成
    由多个完整页面构成
    一个外壳页面和多个页面片段构成
    跳转方式
    页面之间的跳转是从一个页面跳转到另一个页面
    页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开壳页面
    跳转后公共资源是否重新加载
    URL模式
    用户体验
    页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上
    页面片段间的切换快,用户体验好,包括在移动设备上
    能否实现转场动画
    无法实现
    容易实现(手机app动效)
    页面间传递数据
    依赖URL、cookie或者localstorage,实现麻烦
    因为在一个页面内,页面间传递数据很容易实现(这里是我补充,父子之间传值,或vuex或storage之类)
    搜索引擎优化(SEO)
    可以直接做
    需要单独方案做,有点麻烦
    特别适用的范围
    需要对搜索引擎友好的网站
    对体验要求高的应用,特别是移动应用
    搜索引擎优化(SEO)
    可以直接做
    需要单独方案做,有点麻烦
    开发难度
    低一些,框架选择容易
    高一些,需要专门的框架来降低这种模式的开发难度

    五、总结

      从单页面应用到多页面应用vue实际上的编程并没有变多少,本质上多页面一个.html对应一个入口,其中涉及到webpack,后边会出一期对webpack的配置,敬请期待 

      个人对SEO比较感兴趣,会去了解一下。

  • 相关阅读:
    Eclipse配置Maven详细教程
    Spring MVC 搭建web项目示例
    C# Action 和Func
    C# params 用法简介
    WPF绘图性能问题
    C# EventWaitHandle用法
    C#5.0 异步编程async/await用法
    通过Struts2Web应用框架深入理解MVC
    Java过滤器—Filter用法简介
    WPF内嵌CEF控件,与JS交互
  • 原文地址:https://www.cnblogs.com/qjsbk/p/13765141.html
Copyright © 2011-2022 走看看