“探索前后端分离架构下的Vue.js应用开发“

目录

  • 引言
    • 1. 前后端分离
    • 2. Vue的简介
      • 1. Vue.js是什么?
      • 2. 库和框架的区别
      • 3. MVVM的介绍
    • 3. Vue的入门
      • 数据的双向绑定
      • 数据的单项绑定
    • 4. Vue的生命周期
    • 总结

在这里插入图片描述

引言

在当今互联网时代,前后端分离架构已经成为了Web应用开发的主流趋势。前后端分离架构的核心思想是将前端和后端的开发过程解耦,使得前端和后端可以独立开发、测试和部署。Vue.js作为一种流行的前端框架,为前后端分离架构提供了强大的支持。本文将介绍前后端分离架构以及Vue.js的基本概念和使用方法,并通过实例演示Vue.js的生命周期。

1. 前后端分离

前后端分离是一种软件架构模式,它将前端和后端的开发过程分离开来。前端负责展示数据和用户交互,后端负责处理业务逻辑和数据存储。通过前后端分离,可以实现前后端的并行开发,提高开发效率和灵活性。常见的前后端分离架构包括MVC、MVVM等。

2. Vue的简介

1. Vue.js是什么?

Vue是一个构建用户界面(UI)的[渐进式]JavaScript框架,它采用了MVVM(Model-View-ViewModel)的架构模式。Vue.js具有轻量级、易学易用、灵活和高效的特点,被广泛应用于Web应用开发中。Vue.js提供了一系列的指令和组件,使得开发者可以轻松构建交互式的用户界面。

2. 库和框架的区别

  • 2.1 库(Library),本质上是一些函数的集合。每次调用函数,实现一个特定的功能,接着把控制权交给使用者
    代表:jQuery
    jQuery这个库的核心:DOM操作,即:封装DOM操作,简化DOM操作

  • 2.2 框架(Framework),是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码

    代表:vue
    框架规定了自己的编程方式,是一套完整的解决方案
    使用框架的时候,由框架控制一切,我们只需要按照规则写代码
    框架的侵入性很高(从头到尾)

3. MVVM的介绍

MVVM,一种更好的UI模式解决方案,MVVM通过数据双向绑定让数据自动地双向同步
相比较于mvc更加便捷;

  • MVVM ===> M / V / VM

  • M:model数据模型

  • V:view视图

  • VM:ViewModel 视图模型 虚拟dom

  • V(修改数据) -> M

  • M(修改数据) -> V

  • 数据是核心

3. Vue的入门

要使用Vue.js进行开发,首先需要引入Vue.js的库文件。可以通过CDN引入,也可以通过npm安装。然后,在HTML文件中创建一个Vue实例,并指定要控制的DOM元素。接下来,可以在Vue实例中定义数据和方法,并将其绑定到HTML模板中。Vue.js使用了响应式的数据绑定机制,当数据发生变化时,相关的视图会自动更新。

数据的双向绑定

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script><title></title></head><body><div id = "app">{{msg}}<input v-model="msg"/></div><script>new Vue({el:"#app",data(){return{msg:'hello vue-----------------       '}}})</script></body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script><title></title></head><body><div id = "app"><!-- {{msg}} --><input v-model="msg"/><button type="button" @click="tan()">点击弹屏</button></div><script>new Vue({el:"#app",data(){return{msg:null}},methods:{tan(){alert(this.msg);}}})</script></body>
</html>

在这里插入图片描述

数据的单项绑定

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script><title></title></head><body><div id = "app"><!-- {{msg}} --><input :value="msg"/><button type="button" @click="tan()">点击弹屏</button></div><script>new Vue({el:"#app",data(){return{msg:'数据的单项绑定'}},methods:{tan(){alert(this.msg);}}})</script></body>
</html>

在这里插入图片描述

4. Vue的生命周期

Vue.js的生命周期指的是Vue实例从创建到销毁的整个过程。Vue实例的生命周期包括创建阶段、挂载阶段、更新阶段和销毁阶段。在每个阶段,Vue提供了一系列的生命周期钩子函数,可以在特定的时机执行相应的操作。常用的生命周期钩子函数包括created、mounted、update和destroy等。

在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title	></title><script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script></head><body><div id="d1"><div>number:{{number}}</div><div>{{detail()}}</div><input type="text" v-model="number" /></div><script>var data = {number:999,msg:null};var vm = new Vue({el:'#d1',data:data,methods:{detail:function(){return "使用方法来插值:"+this.msg;}},beforeCreate:function(){console.log('beforeCreate:刚刚new Vue()之后,这个时候,数据还没有挂载呢,只是一个空壳')           console.log(this.msg)//undefinedconsole.log(document.getElementsByClassName("myp")[0])//undefined},created:function(){console.log('created:这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数')this.msg+='!!!'console.log('在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取')console.log('接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染')},beforeMount:function(){console.log('beforeMount:虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated')this.msg+='@@@'console.log('在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取')console.log(document.getElementsByClassName("myp")[0])//undefinedconsole.log('接下来开始render,渲染出真实dom')},// render:function(createElement){//     console.log('render')//     return createElement('div','hahaha')// },mounted:function(){ console.log('mounted:此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了')console.log(document.getElementsByClassName("myp")[0])console.log('可以在这里操作真实dom等事情...')//    this.$options.timer = setInterval(function () {//        console.log('setInterval')//         this.msg+='!'  //    }.bind(this),500)},beforeUpdate:function(){//这里不能更改数据,否则会陷入死循环console.log('beforeUpdate:重新渲染之前触发')console.log('然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染')         },updated:function(){//这里不能更改数据,否则会陷入死循环console.log('updated:数据已经更改完成,dom也重新render完成')},beforeDestroy:function(){console.log('beforeDestory:销毁前执行($destroy方法被调用的时候就会执行),一般在这里善后:清除计时器、清除非指令绑定的事件等等...')// clearInterval(this.$options.timer)},destroyed:function(){console.log('destroyed:组件的数据绑定、监听...都去掉了,只剩下dom空壳,这里也可以善后')}});</script></body>
</html>

总结

本文介绍了前后端分离架构下的Vue.js应用开发。通过前后端分离,可以实现前后端的解耦,提高开发效率和灵活性。Vue.js作为一种流行的前端框架,具有轻量级、易学易用、灵活和高效的特点。通过实例演示了Vue.js的生命周期,帮助开发者更好地理解和应用Vue.js。希望本文对读者在前后端分离架构下使用Vue.js进行应用开发有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/112181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts 散点图的详细配置过程

文章目录 散点图 简介配置步骤简易示例 散点图 简介 Echarts散点图是一种常用的数据可视化图表类型&#xff0c;用于展示两个或多个维度的数据分布情况。散点图通过在坐标系中绘制数据点的位置来表示数据的关系。 Echarts散点图的特点如下&#xff1a; 二维数据展示&#xff…

前端面试的话术集锦第 17 篇博文——高频考点(TCP知识点)

这是记录前端面试的话术集锦第十七篇博文——高频考点(TCP知识点),我会不断更新该博文。❗❗❗ 首先还是先来解答这个常考面试题关于TCP部分的内容,然后再详细去学习这个协议。 1. UDP 与 TCP 的区别是什么? TCP基本是和UDP反着来,建立连接断开连接都需要先需要进行握手…

JMeter:接口测试基础介绍

一、什么是接口 接口是非常抽象的概念&#xff0c;先来看下中国最大的综合性辞典《辞海》是怎样定义接口的&#xff1a; 两个不同系统或系统中两个不同特性部分的交接部分。一般分硬件接口和软件接口两种。前者是为连接计算机各部分之间、计算机与计算机之间、计算机与外部系统…

《ADS2011射频电路设计与仿真实例》功率放大器设计的输入输出匹配

徐兴福这本书的6.6 Smith圆图匹配这一节中具体匹配时&#xff0c;直接给出了电容与串联微带的值&#xff0c;没有给出推导过程&#xff0c;我一开始以为是省略了详细推导过程&#xff0c;后来发现好像基本上是可以随便自己设的。以输入匹配&#xff08;书本6.6.4输入匹配电路的…

旧版office如何卸载干净,Mac电脑移除office教程

版office卸载不干净导致无法激活新版Microsoft office&#xff0c;这个问题如何解决呢&#xff1f;深受这一烦恼的小伙伴看过来&#xff01; 旧版office由于证书一直清理不干净&#xff0c;电脑上有旧证书存在导致新版offce激活不成功&#xff0c;具体手动清理方法带给大家。 …

Java“牵手”淘宝店铺商品列表页数据采集+淘宝店铺商品上传接口,淘宝API接口申请指南

淘宝网是亚太地区较大的网络零售、商圈&#xff0c;由阿里巴巴集团在2003年5月创立。 淘宝网作为中国C2C市场的开创者&#xff0c;也是亚太最大的网络零售商圈。淘宝网自创立以来&#xff0c;始终致力于打造一个零距离的沟通交易平台&#xff0c;并创造了“免费宝”的独特模式…

从理解js双重递归执行顺序到用递归方式实现二叉树中序遍历

今天在学习力扣上94题二叉树的中序遍历时&#xff0c;js的实现方法之一是递归&#xff0c;但是函数内递归是双重&#xff0c;花了一些时间来理解双重递归调用的执行顺序。 先看如下例子&#xff0c;参考文章&#xff08;双递归的执行过程理解&#xff09; 示例代码如下&#xf…

微服务保护-流量控制

流量控制 雪崩问题虽然有四种方案&#xff0c;但是限流是避免服务因突发的流量而发生故障&#xff0c;是对微服务雪崩问题的预防。我们先学习这种模式 簇点链路 当请求进入微服务时&#xff0c;首先会访问DispatcherServlet&#xff0c;然后进入Controller、Service、Mapper&…

离线版IP归属地查询

这里简单介绍一下Ip2regionSearcher是什么&#xff1f; ip2region 是准确率 99.9% 的 IP 地址定位库&#xff0c;0.0x毫秒级查询&#xff0c;提供了 Java、PHP、C、Python、Node.js、Golang、C#、Rust、Lua的查询绑定和 Binary、B树、内存三种查询算法&#xff01; Setp1&…

星际争霸之小霸王之小蜜蜂(十三)--接着奏乐接着舞

系列文章目录 星际争霸之小霸王之小蜜蜂&#xff08;十二&#xff09;--猫有九条命 星际争霸之小霸王之小蜜蜂&#xff08;十一&#xff09;--杀杀杀 星际争霸之小霸王之小蜜蜂&#xff08;十&#xff09;--鼠道 星际争霸之小霸王之小蜜蜂&#xff08;九&#xff09;--狂鼠之…

小米华为,化干戈为玉帛!

近日来&#xff0c;手机圈又掀起了各大厂家推出新品的高潮。首先是华为Mate60的推出&#xff0c;其自研的麒麟9000S芯片瞬间点燃了国内手机市场&#xff0c;得到了国内甚至国外业界人士的认可和好评。 而近日网上盛传的小米创始人雷军的“愿意加入华为技术生态圈”的邀请&…

Spring Boot集成Redis实现数据缓存

&#x1f33f;欢迎来到衍生星球的CSDN博文&#x1f33f; &#x1f341;本文主要学习Spring Boot集成Redis实现数据缓存 &#x1f341; &#x1f331;我是衍生星球&#xff0c;一个从事集成开发的打工人&#x1f331; ⭐️喜欢的朋友可以关注一下&#x1faf0;&#x1faf0;&…