1 单页面应用程序

  • Single Page Application (SPA)
  • 从字面意义来看就是一个网站就一个页面,如:
    • coding
    • 网易云音乐
  • 极致的用户体验,就像nativeapp一样
  • 优点:
    • 具有桌面应用的即时性、网站的可移植性和可访问性。
    • 用户体验好、快,内容的改变不需要重新加载整个页面,web应用更具响应性和更令人着迷。
    • 基于上面一点,SPA相对对服务器压力小。
    • 良好的前后端分离。SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。
    • 对前端人员javascript技能要求更高,促使团队技能提升。
  • 缺点:
    • 分功能模块的鉴权不好实现。
    • 不利于SEO。所以不适用于购物网站
    • 前进、后退、地址栏等,需要程序进行管理;
    • 书签,需要程序来提供支持;
  • 简单的应用原理:
    • hash
    • window.onhashchange事件
    • 当hash改变的时候,根据不同的hash做不同处理

2 MVVM模式

MVVM是Model-View-ViewModel的简写。 一种架构模式,开发思想。这种模式最大的好处在于解耦,数据和视图不再是强耦合在一起。它本质上就是MVC 的改进版。

M     -       Model        业务数据模型

V      -       View                   视图

VM   -       ViewModel        视图数据模型(负责V和M交互)

核心思想:数据驱动视图(VM)

优点:

1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。

4. 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。

3 主流的前端Java Script框架

  • Angular

    • 09年诞生
    • 原来是个人开发的,后来被谷歌收购了
  • React
    • 诞生于facebook公司内部
    • facebook不满足于市场上所有js框架,所以自己搞了一个。
  • vue.js
    • 尤雨溪(中国江苏无锡人)----创造
    • 12年左右诞生
    • 文档都中文的,对英文要求不高,非常友好

目前在国内公司中,BAT级别的企业:React > Angular > vue,不大使用国内产品。在中小型公司,vue.js更多一些

4 Vue.js介绍

是什么?

  • 前端Java Script框架

为什么要用它?

  • 它能帮助提升网站应用程序开发效率

一般什么情况会使用?

  • 一般需要开发SPA应用程序的时候取用
  • 但是vue是渐进式的,可以融入到不同的项目中
    • 既可以和传统的网站开发架构融合在一起,例如:可以简单的把它当作一个类似JQuery的库来使用。
    • 也可以使用它开发大型的SPA单页面应用程序。

发展历史

  • 作者:尤雨溪(微博:尤小右),设计出身。

    • 知乎
    • 新浪微博
  • 作者尤雨溪最初在2013年12月8号在GitHub上发布0.6版
  • 2015年10月正式发布了1.0版本
    • vue在1.0版本发布后才开始崭露头角
  • 2016年10月份正式发布了2.0版
  • 1.0老的项目可能还在用,新项目绝对选择2.0

心态:国内的产品不一定就是不好,框架只是个工具,不应该懂了或者精通就有自我优越感。不要看不起国产,也不要执着于一个框架。

相关资料:

中文官网:https://cn.vuejs.org/

GitHub:    https://github.com/vuejs/vue

官方教程:https://cn.vuejs.org/v2/guide/

API参考文档:https://cn.vuejs.org/v2/api/

建议:学习前端框架,多参考文档,不建议买书,

  • 版本更新较块,不适合看书。
  • 很多书都是直接抄的官方文档
  • 也说明,官方文档写的非常好。

vue学习之路 - 0.背景的更多相关文章

  1. vue学习之路 - 4.基本操作(下)

    vue学习之路 - 4.基本操作(下) 简述:本章节主要介绍 vue 的一些其他常用指令. Vue 指令 这里将 vue 的指令分为系统内部指令(vue 自带指令)和用户自定义指令两种. 系统内部指令 ...

  2. Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...

  3. Vue学习之路---No.4(分享心得,欢迎批评指正)

    这里说声抱歉,周末因为有其他事,没有更新博客,那么我们今天继续上周5的说. 老规矩,先回顾一下上一次的重点: 1.利用V-if和v-else来提到show()和hide(),同时要记住,v-else一 ...

  4. Vue学习之路第一篇(学习准备)

    1.开发工具的选择 这个和个人的开发习惯有关,并不做强求,厉害的话用记事本也可以.但是我还是建议用人气比较高的编辑工具,毕竟功能比较全面,开发起来效率比较高. 我之前写前端一直用的是sublimete ...

  5. Python3学习之路~0 目录

    目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Pytho ...

  6. 后端开发者的Vue学习之路(一)

    目录 前言: iview组件库示例 element组件库示例 Vue的介绍 兼容性: 学习Vue需要的前置知识: MVVM模型 补充: 安装/导入 导入Vue 安装 两种方式的区别: HelloWor ...

  7. Vue学习之路---No.2(分享心得,欢迎批评指正)

    昨天我们大致了解了有关Vue的基础知识和语法:今天我们继续在大V这条路上前进. 首先,我们回忆一下昨天提到的相关知识点: 1.了解Vue的核心理念------"数据驱动视图" 2. ...

  8. Vue学习之路---No.7(分享心得,欢迎批评指正)

    老规矩,先回顾一下上回的重点: 1.对于input框,若为单选框,如果没有对其设置value,那么其checked的值将在true Or false之间切换:如果设置了value,那么将会切换valu ...

  9. Vue学习之路---No.3(分享心得,欢迎批评指正)

    同样的,我们先来回顾一下昨天学习的内容: 1.利用v-once来组织双向绑定 2.filter{}过滤器的使用(详情请看上一章) 3.computed(计算属性),利用computed属性实现filt ...

随机推荐

  1. ubuntu下安装wireshark(以及配置非root)

    https://jingyan.baidu.com/article/c74d60009d992f0f6a595de6.html Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网 ...

  2. log4j.properties 日志分析

    # 多目的地.自定义样式#设置级别和多个目的地#level 是日志记录的优先级,分为 OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL或者您定义的级别.#Log4j建议只使用四个 ...

  3. phpstorm 配置 webserver ,配置根目录

    原文链接    http://blog.csdn.net/pony_maggie/article/details/52367093 phpstorm自带了一个web server,我们可以直接在IDE ...

  4. Discuz论坛UCenter无法登录问题修复方法完美解决无限刷新问题

    级20141225版本后,出现UC无法登录问题[完美]解决方法.自圣诞节发布 Discuz! X3.2 R20141225  小编手头多个站点也都在升级后出现了,后台登录[ UCenter]假死情况, ...

  5. iOS重用宏定义

    iOS 多快好省的宏(转) 原文地址:http://my.oschina.net/yongbin45/blog/150149 // 字符串: #ifndef nilToEmpty #define ni ...

  6. BZOJ4503: 两个串(bitset字符串匹配)

    题意 题目链接 Sol Orz xudyh F个毛T啊..直接bitset一波就赢了啊...(虽然复杂度很假) 就是记录匹配串中每个元素出现的位置,将第\(i\)个位置的bitset右移\(i\)位后 ...

  7. ZR国庆Round2解题报告

    心路历程 预计得分:100 + 10 - 20 + 10 = 120 实际得分:100 + 0 + 10 = 110 感觉这场打的挺稳的.开场秒掉A题,写+调差不多1h 然后刚T3暴力,刚完还有2h左 ...

  8. 线程队列queue

    队列queue 队列用于线程之间安全的信息交换 队列和列表的区别:队列里的信息get()后就没了,而列表获取数据则是copy,原列表里的值还在 使用前先实例化队列 q = queue.Queue(ma ...

  9. SourceTree Win10 安装过程及配置

    SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工作流程,对于不熟悉 git 命令的初学者来说,可以通过 SourceTree 快速 ...

  10. java设置随机数教程

    java作为程序猿开发人员都在使用的一款编程语言,许多入门的朋友都陷入了一个简单的问题就是,使用java开发时随机数要怎么设置?java怎么设置随机数?经常会有地方需要用到随机数,不用着急,一起来看看 ...