[Java Web]VUE | vue:一项Java Web开发中不可或缺的前端技术

news2024/9/25 11:09:39

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Java Web
⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁

VUE

  • 1、download vue.js
  • 2、简介
  • 3、软件架构模式
    • 3.1、MVC
    • 3.2、MVVM
    • 3.3、MVVM和MVC区别
  • 4、VUE指令
    • 4.1、v-bind&v-model
    • 4.2、v-on
    • 4.3、条件判断
    • 4.4、v-for
  • 5、生命周期

1、download vue.js

下载链接:vue.js

2、简介

Vue是一个流行的JavaScript前端框架,用于构建用户界面。它由尤雨溪(Evan You)创建,于2014年首次发布。Vue主要用于构建单页面应用程序(SPA)和动态用户界面。 Vue是一个渐进式框架,它允许您根据需要逐步采用其功能。

Vue有以下几个主要特点:

  1. 响应式数据绑定:Vue通过将数据与DOM绑定,使得数据的变化可以实时反映到界面上。
  2. 组件化开发:Vue将UI拆分成独立组件,每个组件可以具有自己的模板、样式和行为,可以实现组件的复用和管理。
  3. 虚拟DOM:Vue使用虚拟DOM技术来最小化DOM操作,提高应用程序的性能。
  4. 模板语法:Vue使用类似HTML的模板语法,使得开发人员可以轻松地编写代码。
  5. 生态系统:Vue拥有一个强大的生态系统,包括大量的插件和库,可以方便地与其他工具和框架集成。

Vue可以与其他JavaScript库和框架一起使用,例如React、Angular和jQuery等。Vue社区活跃,有大量的文档和教程,适合不同水平的开发人员使用。

简单来说,vue就是一套免除原生JavaScript中的DOM操作的前端框架

3、软件架构模式

3.1、MVC

MVC是Model-View-Controller的缩写,是一种软件架构模式,用于将应用程序分为三个部分:数据模型(Model)、用户界面(View)和控制器(Controller),以实现应用程序的分离和模块化。

MVC模式的基本思想是将应用程序分为三个部分,每个部分各自负责不同的任务:

  1. Model:表示应用程序的数据模型,用于保存数据和执行数据操作。Model通常是通过Web服务或本地存储与数据源交互。
  2. View:表示应用程序的用户界面,用于显示数据和处理用户输入。View通常是由HTML、CSS和JavaScript组成。
  3. Controller:表示控制器,它负责处理用户输入并更新Model和View。Controller从View中接收用户输入,并根据输入的内容更新Model中对应的数据。同时,Controller也会更新View中的数据,以使用户界面保持同步。

基本流程图:
  在这里插入图片描述
在MVC模式中,Model和View是相互独立的,它们不直接通信。而Controller则是Model和View之间的桥梁,负责处理用户输入和数据更新,并将数据更新传递给View。
  在这里插入图片描述

3.2、MVVM

  MVVM是Model-View-ViewModel的缩写,全称为“模型-视图-视图模型”,是一种软件架构模式,用于将用户界面(UI)逻辑和业务逻辑分离。
  MVVM的核心思想是将UI逻辑和视图数据绑定在一起,通过ViewModel(视图模型)来实现数据的双向绑定。

MVVM由以下三个部分组成:

  1. Model:表示应用程序的数据模型,用于保存数据和执行数据操作。Model通常是通过Web服务或本地存储与数据源交互。
  2. View:表示应用程序的用户界面,用于显示数据和处理用户输入。View通常是由HTML、CSS和JavaScript组成。
  3. ViewModel:表示视图模型,它是View和Model之间的桥梁。ViewModel将View的数据和事件绑定到Model中,并在View和Model之间进行数据的双向绑定。

MVVM模式的优点包括:

  1. 提高了代码的可读性和可维护性。
  2. 降低了代码的耦合度,使得不同部分的代码可以更加独立地开发和测试。
  3. 加速了应用程序的开发和迭代,因为开发人员只需要专注于自己擅长的部分。
  4. 支持代码的重用,因为ViewModel可以被多个View共享。

  在MVVM架构中,View和ViewModel之间是通过数据绑定来实现通信的。当View中的数据发生变化时,ViewModel会自动更新Model中对应的数据,反之亦然。
  这种数据的双向绑定可以使开发者更加高效地开发和维护应用程序。
  MVVM模式在现代Web开发中广泛使用,特别是在前端框架如Vue、Angular和React等中得到了广泛应用。通过使用MVVM,可以更好地组织代码,提高代码的可重用性、可维护性和可扩展性,从而加速应用程序的开发和迭代。

3.3、MVVM和MVC区别

  MVC 思想是没法进行双向绑定的。双向绑定是指当数据模型数据发生变化时,页面展示的会随之发生变化,而如果表单数据发生变化,绑定的模型数据也随之发生变化。

  MVVM思想的组件图解:
  在这里插入图片描述
  在这里插入图片描述

4、VUE指令

以下是常见的Vue.js指令的列表,包括指令名称、作用、用法和示例:
在这里插入图片描述

4.1、v-bind&v-model

在这里插入图片描述
在这里插入图片描述

4.2、v-on

在这里插入图片描述
在这里插入图片描述

实现效果:
  在这里插入图片描述

v-on: 后面的事件名称是之前原生事件属性名去掉on 例如:
1. 单击事件 : 事件属性名是 onclick,而在vue中使用是 v-on:click
2. 失去焦点事件:事件属性名是 onblur,而在vue中使用时 v-on:blur

v-bind&v-model&v-on完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <a v-bind:href="url">点击一下</a>
    <a :href="url">点击一下</a>
    <input v-model="url">
    <br>
    <input type="button" value="按钮" v-on:click="show()"><br>
    <input type="button" value="一个按钮" @click="show()">
</div>

<script src="js/vue.js"></script>
<script>
    //1. 创建Vue核心对象
    new Vue({
        el:"#app",
        data(){
            return {
                username:"",
                url:"https://www.baidu.com"
            }
        },methods:{
            show(){
                alert("被点击")
            }
        }
    });
</script>
</body>
</html>

4.3、条件判断

在这里插入图片描述
在这里插入图片描述

🔺🔺v-show和v-if的区别:
  v-show 不展示的原理是给对应的标签添加 display css属性,并将该属性值设置为none ,这样就达到了隐藏的效果。而 v-if 指令是条件不满足时根本就不会渲染。

4.4、v-for

在这里插入图片描述

vue的for指令和Java一样是用来遍历的,格式如下:
  在这里插入图片描述

如果在页面需要使用到集合模型数据的索引,就需要使用如下格式:
  在这里插入图片描述

5、生命周期

生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法,这些生命周期方法也被称为钩子方法。
在这里插入图片描述

下图是 Vue 官网提供的从创建 Vue 到效果 Vue 对象的整个过程及各个阶段对应的钩子函数:

  钩子方法只需要重点关注mounted即可
  mounted:挂载完成,Vue初始化成功,HTML页面渲染成功。以后会在该方法中发送异步请求,加载数据。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD19 基础应用技巧(快速定义PCB板框,CAD中DWG转DXF格式导入)

【B站一个假的攻城狮】导入CAD图纸到PCB&#xff0c;Altium Designer 21教程&#xff0c;第九节。 http://www.keyboard-layout-editor.com/ http://builder.swillkb.com/ 1、打开中望CAD&#xff0c;并打开一张图纸文件&#xff0c;为了能把孔表达清楚&#xff0c;开孔断面图…

React(六) —— redux

&#x1f9c1;个人主页&#xff1a;个人主页 ✌支持我 &#xff1a;点赞&#x1f44d;收藏&#x1f33c;关注&#x1f9e1; 文章目录⛳Redux&#x1f346;redux定义&#x1f490;redux使用原则&#x1f370;redux使用场景&#x1f9ca;redux工作流程&#x1f96b;redux基本创建…

14.创建组件

组件可以理解为页面的拼图块&#xff0c;一个完整的页面是由若干个组件拼成的 在vue中规定&#xff0c;组件的后缀名为vue&#xff0c;每一个vue文件中应该包含三个大标签 template 组件的模板结构&#xff0c;可以理解为htmlscript 组件的JS&#xff0c;控制组件要执行什么动…

区域检验管理系统(云LIS)源码

1、区域检验管理系统&#xff08;云LIS&#xff09;概述 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管理和共享&#xff0c;通过对质量控制的管理&am…

Java每日一练(20230418)

目录 1. N皇后 II &#x1f31f;&#x1f31f;&#x1f31f; 2. 字符串相乘 &#x1f31f;&#x1f31f; 3. 买卖股票的最佳时机 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一…

“Natural Earth II“ === “Natural Earth II“是false?你知道空 格的四种写法吗?

前言 有一回对我说道&#xff0c;“你学过前端么&#xff1f;”我略略点一点头。他说&#xff0c;“学过前端&#xff1f;……我便考你一考。html 里面的空格&#xff0c;怎样 coding 的&#xff1f;”我想&#xff0c;讨饭一样的人&#xff0c;也配考我么&#xff1f;便回过脸…

计算机网络 - 网络中的基本概念

前言 本篇介绍网络的一些基本概念&#xff0c;认识IP地址&#xff0c;端口号&#xff0c;协议&#xff1b;了解常用的网络协议模型&#xff0c;知道数据如何封装与分用的&#xff1b;为以后学习计算机网络其它知识做铺垫&#xff0c;如有错误&#xff0c;请在评论区指正&#…

Java数据结构 二叉树基本知识 二叉树遍历

二叉树很简单的&#xff0c;试试呗~ 文章目录 Java数据结构 & 二叉树基本知识 & 二叉树遍历1. 树的基本定义2. 树的基本概念2.1 例子2.2 树的代码表示&#xff1a; 3. 二叉树3.1 特殊节点3.2 特殊的二叉树3.3 二叉树的性质3.3.1 证明第三点3.3.2 证明第四点 4. 二叉树遍…

MySQL-MHA高可用(一)

目录 &#x1f341;同步概念 &#x1f341;工作原理 &#x1f343;环境拓扑 &#x1f341;环境准备 &#x1f342;manager &#x1f342;master1 &#x1f342;master2 &#x1f342;slave &#x1f343;配置半同步复制 &#x1f341;master1 &#x1f341;master2 &#x1f34…

函数 tcgetpgrp tcsetpgrp 和 tcgetsid

① tcgetpgrp & tcsetpgrp 函数 tcgetpgrp函数是用来获取前台进程组的ID #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> int main() {printf("我的ID&#xff1a;%d---我…

【MySQL学习】MySQL库的操作

目录一、查看数据库的连接二、数据库的创建三、字符集和校验规则3.1 查看数据库默认的字符集以及校验规则3.2 查看数据库支持的字符集以及校验规则3.3 校验规则对数据库的影响四、操纵数据库4.1 查看数据库4.2 显示创建语句4.3 修改数据库4.4 数据库的删除五、数据库的备份与恢…

Nginx中的location规则与rewrite

nginx正则表达式 ^$空行 \d数字 \D代表非数字 \s 匹配空白符 \S 非空白字符 \w匹配任意单词符包括下划线[A-Za-z0-9_] {n} 匹配起那面字符n次 .* 除换行符\n匹配任意字符多次 {n,m}匹配前面字符5到10次 [abc] 匹配一次a,b,c ( )表达式的开始和结束 | 或运算符 &#…

【uniapp】sigmob广告加载失败:-5005、500422没有imei的解决办法(原创可用)

问题 最近打算将开发的uniapp应用对接uni-ad广告中去&#xff0c;在对接sigmob的时候出现了以下问题&#xff1a;①错误码-5005&#xff0c;查询了以下官方文档&#xff0c;发现是说我频繁调用&#xff0c;可是并没有&#xff0c;我是在真机上测试的没成功就没在弄了&#xff…

【力扣-876】链表的中间结点

&#x1f58a;作者 : Djx_hmbb &#x1f4d8;专栏 : 数据结构 &#x1f606;今日分享 : ----------小Tips&#xff1a; 虽然都是口服液体制剂&#xff0c;且看起来单支容量都一样&#xff0c;但是“藿香正气水”与“藿香正气口服液”的区别你知道吗&#xff1f;藿香正气水里含有…

Vue电商项目实战之角色列表添加,编辑,删除功能

这是黑马vue电商项目后台,自己需要完成的功能,这里仅供参考当然还需要自己去理解. 一.添加功能 在roles.vue中 1.添加角色的对话框 代码如下: <!-- 添加角色的对话框 --><el-dialog :visible.sync"addRoleDialogVisible" title"添加角色" widt…

【C++技能树】原来比C方便这么多 --缺省参数、函数重载、引用讲解

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

DPCNN分类模型

论文 Deep Pyramid Convolutional Neural Networks for Text Categorization 提出深层金字塔卷积网&#xff08;DPCNN&#xff09;是 word-level 的广泛有效的深层文本分类卷积神经网络&#xff0c;比 TextCNN&#xff08;浅层CNN&#xff09;性能明显提高。 TextCNN 不能通过卷…

Unity InputSystem (一)

什么是InputSystem InputSystem 是 2019 年 Unity 新推出的插件&#xff0c;输入系统包实现了一个系统来使用任何类型的输入设备来控制你的 Unity 内容。它旨在成为 Unity 的经典输入管理器更强大、更灵活、更可配置的替代品。 新输入系统基于事件&#xff0c;输入设备和动作逻…

Redis 哨兵和集群

文章目录1. 单机模式2. 主从架构3. 哨兵4. 集群模式5. 哈希槽是什么&#xff1f;1. 单机模式 Redis 单副本&#xff0c;采用单个 Redis 节点部署架构&#xff0c;没有备用节点实时同步数据&#xff0c;不提供数据持久化和备份策略&#xff0c;适用于数据可靠性要求不高的纯缓存…

【硬件外设使用】——SPI

【硬件外设使用】——SPI SPI基本概念SPI通信协议SPI使用方法pyb.spimachine.spi SPI可用的传感器 SPI基本概念 SPI是一种串行端口通信接口&#xff0c;它是一种同步的全双工协议&#xff0c;用于在数字电路之间传输数据。SPI代表串行外设接口&#xff0c;是一种非常流行的数字…