背景

作为常年搞后端的自己来说,除了多年前学习的一点关于HTML的皮毛,对现在的前端技术栈可谓是一窍不通。但是因为最近在做的内部业务全链路监控系统,负责前端的同事做到一半去搞别的项目了,为了把项目落地不得不硬着头皮学一下前端知识。
项目采用了比较流行的Vue.js(以下简称Vue)框架,所以做了一些学习,有一些小的感悟,所以做个记录。对没有搞过前端的后端同学来说可能有点收获。

前后端分离

现在前后端主流的合作方式还是前后分离。我理解的前后端分离,从宏观上讲:前端负责发送请求到后端获取或者推送数据然后根据响应结果进行渲染。
关于后端,负责提供数据读写API供前端调用,此处不谈。
本文主要谈一下在前端如何使用Vue做渲染。当然Vue.js也可以不用在前后分离的场景,但是这样

Vue如何工作的

从三个方面入手:

  1. 实现原理
  2. Vue使用方式
  3. 生产实践

实现原理 - MVVM (Model - View - ViewModel)模式

关于MVVM的理解:视图层的变化会更新到Model,Model层的变化会更新到View,即所谓的双向绑定(data-binding)。
Vue基于MVVM模式实现。
维基百科定义:https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel

Vue使用方式 - 如何编码

Vue跟Java一样有自己的语法,可以像引用jar一样依赖第三方的JS库。官方文档:https://cn.vuejs.org/v2/guide/

生产实践 - 工程化

与Java工程一样,我们要构建一个可以发布的包,我们需要依赖管理工具来处理负责的依赖的关系,要使用构建工具来帮我们把Vue源文件编译成能被浏览器解释渲染的文件,比如js、css、png等。比如Maven、Gradle、Ivy,管理依赖,并调用Java编译器完成.java到.class的过程一样。Vue使用的构建工具是npm,基于nodejs的包管理工具,npm应该是js相关脚手架下公认的依赖管理工具。

Vue适用场景

Vue是当前很火的一个框架,其解放了前端同学手动绑定数据的大量操作,有利于更快速的写出稳定的功能代码。因为其前后分离的特性,真正的业务数据都是通过异步的方式来拉取,对搜索引擎的收录有影响。针对这种场景,Vue作者提供了一种ssr的解决方案,推荐nuxt.js在服务端完成html代码的渲染,嗯,这个需要nodejs的支持,也意味着额外的维护成本,也意味着多了一次转发,这种方案是否还有其他影响暂时不知。
个人认为,Vue做后台是一个非常棒的方案。

后端视角下的前端框架之Vue.js初探的更多相关文章

  1. 一款简单而不失强大的前端框架——【Vue.js的详细入门教程①】

    ↓— Vue.js框架魅力 —↓ 前言       Vue.js 是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.V ...

  2. 前端框架之Vue.js

    前言: 前端主流框架有Vue.react.angular,目前比较火因为Vue比较容易学习,运营起来比较快速: Vue是什么呢? 是一个基于MVVM架构的,前端框架: 如果你之前已经习惯了用jQuer ...

  3. Python-S9-Day99——Web前端框架之Vue.js

    01课程安排 02let和const: 03 箭头函数 04 对象的单体模式 05 Node.js介绍和npm操作 06 Webpack,babel介绍和Vue的第一个案例 01课程安排 1.1 ht ...

  4. vue.js初探

    前言 入手2016最火前端框架之一vue.js.大概从网上找了些资料看了下vue.js,从网上的资料来看只能惊叹其发展速度太快,让我意外的是其作者是华人的前提下作品这么受欢迎. 网上的博客和教程各种组 ...

  5. 前端框架之vue初步学习

    Vue.js介绍: Vue.js是一个构建数据驱动的web界面的渐进式框架.Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件.它不仅易于上手,还便于与第三方库或既有项目整合 ...

  6. Python-S9——Day100-Web前端框架之Vue

    01 课程简介: 02 let和const: 03 箭头函数: 04 对象的单体模式: 05 nodejs介绍和npm操作: 06 webpack.babel介绍和vue的第一个案例: 07 昨日内容 ...

  7. 前端框架之Vue(10)-全家桶简单使用实例

    vue-router官方文档 vuex官方文档 安装 npm install vue-router --save 使用实例 vue-router初使用(webpack-simple模板) 1.切换到指 ...

  8. web前端框架之Vue hello world

    [博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...

  9. 前端框架之Vue(9)-组件基础&vue-cli

    组件基础 基本示例 这里有一个 Vue 组件的示例: <!DOCTYPE html> <html lang="en"> <head> <m ...

随机推荐

  1. c++ 指针做为参数和返回值

    指针参数 返回值是指针 一.指针作参数形式的函数 //计算x的平方 x*x void square(int *x) { int a=*x; *x=a*a; } 二.指针作返回值的函数 int *squ ...

  2. Django Rest Framework(二)

    •基于Django 先创建一个django项目,在项目中创建一些表,用来测试rest framework的各种组件 models.py class UserInfo(models.Model): &q ...

  3. 项目笔记-vue

    记录新建vue项目之后的种种. 2019年3月12日,从git上下载了一个vue后台模板的项目,git地址:https://github.com/lin-xin/vue-manage-system ( ...

  4. Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'

    from django.db import models # Create your models here. class Category(models.Model): caption = mode ...

  5. CentOS 安装 Ansible 以及连接Windows server的办法

    1. CentOS机器上面按住那ansible yum install ansible 2. 安装 pywinrm  如果不安装 这个的话  ansible 会提示 没有 winrm 模块 注意需要先 ...

  6. Python——模块——配置模块(ConfigParser)

    一.读取 read(filename) 直接读取ini文件内容  sections() 得到所有的section,并以列表的形式返回 options(section) 得到该section的所有opt ...

  7. 曝Wi-Fi重大缺陷:你浏览的或是个假网站

    今年央视315晚会上曝光的Wi-Fi探针收集用户信息的热度还未消退,阿里安全专家研究发现了Wi-Fi的重大新问题:基于WPA/WPA2设计上存在的一些缺陷,用户在使用公共Wi-Fi时,被攻击者钓鱼,进 ...

  8. 用Python将一个列表分割成小列表

    用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  9. 关于objdump的博文整理

    objdump主要用于查看对象文件的内容信息 objdump一些基本命令:http://www.169it.com/article/330129798173630299.html 使用readelf和 ...

  10. 谈谈JavaScript中继承方式

    聊一聊js中的继承 一.简单继承---使用原型赋值的方式继承,将实例化的对象,赋值给子级的原型 父级构造函数 function Parent(param) { this.name = 'parent' ...