web前端——VUE

1.什么是框架?

①概述

框架结构就是基本功能,把很多基础功能已经实现了、封装了。在基础语言之上,对各种基础功能进行封装,方便开发者,提高开发效率

②前端框架

javaScript是原生的

vue.js: 是一个js框架,不是代替js的,是对js进行了封装

UI框架:将前端常用的的一些组件(表单,表格,消息提示)进行封装(对html和css进行了封装) 

③后端框架 

mybatis--jdbc

spring

2.什么是 Vue.js?

vue.js是一个js框架,不是代替js的,是对js进行了封装。Vue (读音 /vjuː /,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。Vue.js 是前端的主流框架之一,和 Angular.js、React.js 一起,并成为前端三大主流框架。

https://v2.cn.vuejs.org/icon-default.png?t=N7T8https://v2.cn.vuejs.org/

3.Vue.js 优点

①体积小 压缩后 33K
②更高的运行效率
用 JQuery 或者原生的 JavaScript DOM 操作函数对 DOM 进行频繁操作的时候,浏览器要不停的渲染新的 DOM 树,导致页面看起来非常卡顿。基于虚拟 dom,一种可以预先通过 JavaScript 进行各种计算,把最终的DOM 操作计算出来并优化的技术,最后在计算完毕才真正将 DOM 操作提交
③双向数据绑定,简化 Dom 操作
通过 MVVM 思想实现数据的双向绑定,让开发者不用再操作 dom 对象,把更多的精力投入到业务逻辑上. MVVM 是 Model-View-ViewModel 的简写。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开
④生态丰富、学习成本低
市场上拥有大量成熟、稳定的基于 vue.js 的 ui 框架、常用组件,来即用实现快速开发,对初学者友好、入门容易、学习资料多

4.vue安装

①方式 1:直接用 <script> 引入

新建一个vue项目普通模式
导入 js 文件
<script src="js/vue.js"></script>

②方式 2:命令行工具 (CLI)

安装教程给出了更多安装 Vue 的方式,请注意我们不推荐新手直接使用 vue-cli,尤其是在你还不熟悉基于 Node.js 的构建工具时

③ 第一个 Vue 程序

导入开发版本的 Vue.js
创建 Vue 实例对象,设置 el 属性和 data 属性
使用简洁的模板语法把数据渲染到页面上
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><div id="app">{{ message }},{{ name }}<!-- {{  }} 差值表达式,可以获取data中定义的数据--><input v-model="name"/></div><script>/* 创建一个vue对象*/var app = new Vue({el: '#app',//绑定挂载点,可以使用其他的选择器,建议使用id选择器,不能使用body,html与vue对象绑定data: {//定义数据,可以定义多个message: 'Hello Vue!',name:"jim"}})</script></body>
</html>

5.Vue 指令

指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性

①差值表达式

{{  }} 差值表达式,可以获取data中定义的数据,插入一个值不影响标签中的其他内容,不能解析内容中的html标签

<p>{{ message }} aaaa</p>

v-text

作用是设置标签的文本内容 ,默认写法会替换全部内容,不能解析内容中的html标签,使用差值表达式可以替换指定内容,内部支持写表达式
<p v-text="message">博客</p>
<p>{{message}}博客</p>

③v-html

作用是设置元素的 innerHTML ,内容中有 html 结构会被解析为标签,内部支持写表达式
<p v-html="message">博客</p>
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><!-- {{ message }} ,v-text="message" 不能解析内容中的html标签v-html="message" 可以解析内容中html标签--><div id="app"><!-- ①{{  }} 差值表达式  插入一个值不影响标签中的其他内容--><p>{{ message }} aaaa</p><!-- ②v-html 会覆盖标签中的其他内容 --><p v-html="message">aaaa</p><!-- ③v-text 会覆盖标签中的其他内容--><p v-text="message">aaaa</p></div><script>/* 创建一个vue对象*/var app = new Vue({el: '#app',data: {message: 'Hello Vue!'}})</script></body>
</html>

 ④v-on

作用是为元素绑定事件 ,事件名不需要写 on 指令可以简写为@,绑定的方法定义在methods 属性中,可以传入自定义参数
<input type="button" value="按钮" v-on:click="test(1,2)" />
<input type="button" value="按钮" @click="test" />
   methods:{
    test(a,b) {
       alert(a);
   }
}

 ⑤v-model

作用是便捷的设置和获取表单元素的值,绑定的数据会和表单元素值相关联,绑定的数据<---->表单元素的值 双向数据绑定
<input type="text" v-model="message"/>
<p>{{message}}</p>
data:{
  message:""
}
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><div id="app"><input type="button" value="按钮" v-on:click="test1(1)"/><input type="button" value="按钮" @click="test2(2)"/><input v-model="name"/><p>{{message}}</p><p>{{name}}</p></div><script>/* 创建一个vue对象*/var app = new Vue({el: '#app',data: {message: 'Hello Vue!',name:""},methods:{//在vue中声明函数test1(a){this.message = this.message.split("").reverse().join("");},test2(a){this.name = "tom";			  }}})</script></body>
</html>

⑥v-show

作用是根据真假切换元素的显示状态,原理是修改元素的 display,实现显示隐藏,指令后面的内容,最终都会解析为布尔值,值为 true 元素显示,值为 false 元素隐藏 ,数据改变之后,对应元素的显示状态会同步更新
<img v-show="isShow" src="img/3.jpg" />
<img v-show="age>18" src="img/3.jpg" />
data:{
isShow:true,
age:20
}

⑦v-if

作用是根据表达式的真假切换元素的显示状态,本质是通过操纵 dom 元素来切换,显示状态表达式的值为 true,元素存在于 dom 中,为 false,从 dom 中移除 ,频繁的切换 v-show,反之使用 v-if,前者的切换消耗小
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style>img{width: 100px;height: 100px;}</style><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><!-- v-show ="布尔值" true-"显示" false-"隐藏" 控制标签display属性,隐藏显示标签的,效率高v-if = "布尔值" true-"显示" false-"隐藏" 会在隐藏时,删除了标签,显示时重新创建标签,效率低v-if 可以和 v-else 联合使用,两个必须紧挨着--><div id="app"><img v-show="isShow" src="img/1.jpg"/><img v-show="age>18" src="img/2.jpg"/><img v-if="isShow" src="img/1.jpg"/><img v-if="age>18" src="img/2.jpg"/><img v-else src="img/1.jpg"/><input type="button" @click="oper()" value="操作"/></div><script>var app = new Vue({el: '#app',data: {isShow:true,age:15},methods:{//在vue中声明函数oper(){this.isShow = !this.isShow;this.age = 15;}}})</script></body>
</html>

⑧v-bind

作用是为元素绑定属性 ,完整写法是 v-bind:属性名 ,简写的话可以直接省略 v-bind,只保留:属性名

<img v-bind:src="imgSrc" /> <img :src="imgSrc" />

<img :title="imgTitle" :src="imgSrc" />
data:{
  imgSrc:'img/3.jpg'
  imgTitle:"这是一张图片"
}
我们可以传给 v-bind:class 一个对象,以动态地切换 class:
<div v-bind:class="{ active: isActive }"></div>
data:{
  isActive :true
}
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style>img{width: 200px;height: 200px;}.active{color:red;background-color:aqua;}</style><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 需求:标签的属性值可以动态修改v-bind:属性名="变量名" 一旦为属性添加v-bind值就是一个在data中定义的变量了还可以简写为:属性名--><div id="app"><img v-bind:src="imgurl[index]" :title="array[index]"/><div v-bind:class="{active:isActive}">wwww</div><input type="button" @click="oper()" value="操作"/></div><script>var app = new Vue({el: '#app',data: {imgurl:["img/1.jpg","img/2.jpg"],array:["苹果手机","华为手机"],index:0,isActive:true},methods:{oper(){this.index++;this.isActive = !this.isActive}}})</script></body>
</html>

⑨v-for

作用是根据数据生成列表结构,数组经常和 v-for 结合,使用语法是(item,index)in 数据
item 和 index 可以结合其他指令一起使用,数组长度的更新会同步到页面上是响应式的
为循环绑定一个 key 值 :key=”值” 尽可能唯一
<li v-for="item in array">
 {{item}}省
</li>
<li v-for="(item,index) in array">
{{index+1}}{{item}}省
</li>
<li v-for="(item,index) in objects">{{index+1}}{{item.name}}{{item.age}}
</li>
data:{
 array:['陕西','山西','河南'],
 objects:[
 {name:'admin',age:23},
 {name:'jim',age:22}
]
}
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><div id="app"><ul><li v-for="user in users">姓名:{{user.name}}年龄:{{user.age}}性别:{{user.gender}}</li></ul>{{student.name}} {{student.age}}</div><script>var app = new Vue({el: '#app',data: {users:[//数组,模拟从后端响应回来的数据{name:"jim",age:20,gender:"男"},{name:"jYY",age:19,gender:"男"},{name:"jkk",age:15,gender:"女"}],student:{name:"张三",age:20}}			})</script></body>
</html>

⑩Vue 实例生命周期

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子 的函数,这给了用户在不同阶段添加自己的代码的机会
beforeCreate: function () {
console.log('beforeCreatea ’);
},
created: function () {
console.log('createda ' );
},
beforeMount:function(){
console.log('beforeMounta’);
},
mounted:function(){
console.log('mounteda’);
}
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><!-- 导入vue.js --><script src="js/v2.6.10/vue.min.js"></script></head><body><!-- 创建一个标签 --><div id="app"></div><script>var app = new Vue({el: '#app',data: {users:[]},beforeCreate(){console.log("beforeCreate")},created(){console.log("created")},beforeMount(){console.log("beforeMount")},mounted(){//vue对象创建成功且与标签绑定后执行,这是我们常用的,再次自动的与后端交互console.log("created")}})</script></body>
</html>

 

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

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

相关文章

最新解决docker镜像无法下载问题

1.增加或修改daemon.json文件 ​ cd /etc/dockervi daemon.json{ "registry-mirrors": [ "https://docker.m.daocloud.io" ] }2.重启docker服务 sudo systemctl daemon-reload sudo systemctl restart docker 3.验证 下载https://txodoo.cn/blog/11/d…

双指针dd d df f

像二分这样的算法&#xff0c;我们甚至可以不用管&#xff0c;直接在问题空间之内搜索&#xff0c;但是双指针也非常好用&#xff0c;帮助我们来减少枚举对象&#xff0c;我们来总结一下这经典的三个题目&#xff1a; 最长上升不重复子序列活动 - AcWings 首先一定要写…

LabVIEW电路板故障诊断系统

基于LabVIEW软件开发的电路板故障诊断系统&#xff0c;涵盖功能测试、性能测试和通讯测试等多个方面。系统集成了多种硬件设备&#xff0c;包括NI PXI-1033机箱、NI PXI-4071数字万用表、NI PXI-4130电源模块、NI PXI-8512 CAN模块等&#xff0c;通过模块化设计实现了对电路板的…

shell中的函数

统计家目录下.c文件的个数 终端输入一个.sh文件&#xff0c;判断文件是否由可执行权限&#xff0c;如果有可执行权限运行脚本&#xff0c;没有可执行权限添加可执行权限后&#xff0c;再运行脚本 写一个函数&#xff0c;输出当前用户uid和gid&#xff0c;并使用变量接收结果 终…

【LLM Transparency Tool】用于深入分析和理解大型语言模型(LLM)工作原理的工具

背景 LLM Transparency Tool 是一个用于深入分析和理解大型语言模型&#xff08;LLM&#xff09;工作原理的工具&#xff0c;旨在增加这些复杂系统的透明度。它提供了一个交互式界面&#xff0c;用户可以通过它观察、分析模型对特定输入&#xff08;prompts&#xff09;的反应…

加速科技Flash存储测试解决方案 全面保障数据存储可靠性

Flash存储芯片 现代电子设备的核心数据存储守护者 Flash存储芯片是一种关键的非易失性存储器&#xff0c;作为现代电子设备中不可或缺的核心组件&#xff0c;承载着数据的存取重任。这种小巧而强大的芯片&#xff0c;以其低功耗、可靠性、高速的读写能力和巨大的存储容量&…

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成&#xff0c;共6个面&#xff0c;所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示&#xff0c;三维坐标…

【目标检测】Yolov8 完整教程 | 检测 | 计算机视觉

学习资源&#xff1a;https://www.youtube.com/watch?vZ-65nqxUdl4 努力的小巴掌 记录计算机视觉学习道路上的所思所得。 1、准备图片images 收集数据网站&#xff1a;OPEN IMAGES 2、准备标签labels 网站&#xff1a;CVAT 有点是&#xff1a;支持直接导出yolo格式的标…

搜索引擎的妙用:掌握这些技巧,让你的搜索更高效!

搜索引擎是我们日常生活中不可或缺的工具&#xff0c;它帮助我们快速找到所需的信息。但是&#xff0c;你真的知道如何高效地使用搜索引擎吗&#xff1f;下面&#xff0c;我将分享一些高级搜索技巧&#xff0c;让你的搜索更加精准和高效。 1. 完全匹配搜索 当你想要搜索一个特…

第三十三篇——互联网广告:为什么Google搜索的广告效果好?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 对于信息的利用&#xff0c;再广告这个维度中去洞察&#xff0c;你又能发…

光伏储能为什么变得那么受欢迎?

在当今这个追求可持续发展和清洁能源的时代&#xff0c;光伏储能技术逐渐崭露头角&#xff0c;并成为了能源领域的热门话题。其受欢迎程度不断攀升&#xff0c;背后有着多方面的原因。光伏储能技术的优点众多&#xff0c;涵盖了多个方面&#xff0c;以下是关于其安全、寿命等关…

【BUG记录】条件查询没有查询结果 || MybatisPlus打印查询语句

结论 先说结论&#xff0c;查询没有结果&#xff0c;可能是数据库连接&#xff0c;数据问题之类&#xff0c;最有可能的根本原因是查询语句问题&#xff0c;需要想办法检查查询语句&#xff0c;使用mybatisPlus等自动生成查询语句的框架不能直接看语句&#xff0c;可以依靠日志…

Python低溫半导体电子束量子波算法计算

&#x1f3af;要点 &#x1f3af;任意维度求解器&#xff0c;绘制三维投影结果 | &#x1f3af;解二维静电场、静磁场 | &#x1f3af;狄利克雷、诺依曼条件几何矩阵算子 | &#x1f3af;算法模拟低溫半导体材料 | &#x1f3af;计算曲面达西流 | &#x1f3af;电子结构计算和…

洗地机哪一款好用?家用洗地机推荐

洗地机是家庭必备的高效深度清洁机器&#xff0c;对于家庭用户而言&#xff0c;它可以自动吸尘、拖洗、自清洁&#xff0c;使用便捷高效&#xff0c;为众多家庭用户所欢迎。但市场上的洗地机品牌众多&#xff0c;很多消费者陷入了购买陷阱&#xff0c;为了帮助广大用户选购到合…

解决SD卡被写保护问题

存储卡在使用过程中&#xff0c;有时会遇到写保护问题&#xff0c;导致无法写入或删除数据。这可能会对用户的正常使用造成困扰。MK米客方德将为您介绍几种常见的解决方法&#xff0c;帮助用户解除存储卡的写保护。 一、检查物理写保护开关 许多存储卡&#xff0c;如SD卡&…

若依 ruoyi 显示隐藏搜索框 显示隐藏列

一、 显示隐藏搜索框 页面搜索关键字 showSearch&#xff0c;设置是否显示 隐藏&#xff1a; 显示&#xff1a; 二、自定义设置 显示隐藏列 1. 页面搜索关键字 right-toolbar&#xff0c;新增&#xff1a; :columns"columns" 2. js下 data(){return{}}中新增&am…

【MySQL事务】深刻理解事务隔离以及MVCC

文章目录 什么叫事务事务的提交方式常见的事务操作方式事务的开始与回滚总结 事务的隔离设置隔离级别解释脏读解释幻读解释不可重复读为什么可重复读不能解决幻读问题&#xff1f;总结 数据库并发的场景MVCC隐藏列字段undo日志Read view RR和RC的本质区别总结 什么叫事务 在My…

人工智能类SCI,1区TOP,3个月可录!

今天给大家推荐一本人工智能类SCIE领域的SCI&#xff0c;此期刊为我处目前合作的重点期刊&#xff01;影响因子7.0-8.0之间&#xff0c;JCR1区&#xff0c;中科院2/1区&#xff08;TOP&#xff09;&#xff0c;最重要的是审稿周期较短&#xff0c;对急投的学者较为友好&#xf…

搜索引擎的原理与相关知识

搜索引擎是一种网络服务&#xff0c;它通过互联网帮助用户找到所需的信息。搜索引擎的工作原理主要包括以下几个步骤&#xff1a; 网络爬虫&#xff08;Web Crawler&#xff09;&#xff1a;搜索引擎使用网络爬虫&#xff08;也称为蜘蛛或机器人&#xff09;来遍历互联网&#…

红日靶场实战一 - 学习笔记

最近在学习红蓝对抗&#xff0c;如果有兴趣的可以多关注。 目录 环境搭建 靶场链接 配置网络 攻击机kali网络 配置win7 web服务器网络 配置winserver 2008网络&#xff08;DC域控&#xff09; 配置win2003/win2k3网路(域成员) IP配置情况 外网突破 信息收集 phpmya…