SpringBootVue(八)Vue前端框架快速上手
前端环境的准备
编码工具:VSCode
https:code。visualstudio。com
依赖管理:NPM
项目构建:VueCliVue框架介绍
学习Vue前端框架需要有html,css,js的基础。
关于MVVM模式:
Vue快速入门
下面开始设计:
新建一个文件夹D:codedemo,打开VisualStudioCode,将demo文件夹拖拽到VisualStudioCode中。
新建一个文件,保存到D:codedemo文件夹中,文件名为demo。html
输入英文的!,然后回车,就可以得到html主要代码
在编写如下代码:body{{message}}body
说明:
1。添加如下代码,导入Vue脚本
2。设置视图(View)。标签之间的内容归View管理,声明要被vue所控制的DOM区域{{message}}
3创建ViewModel(创建vue的实例对象),
data里面规定的是数据,现在把数据渲染到上面的主键里面去,使用{{message}},里面的message就是data里面的属性值。还要通过。mount(app)确定渲染的范围,这里就是这个标签范围内。
这里安装一个插件,openinbrowser。
安装插件有就可以在代码中右键,直接在浏览器中看效果。
可以得到如下效果
进入Vue官网:https:cn。vuejs。org在快手上手里面有基本用法。
1。基本用法!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbody!2。声明要被vue所控制的DOM区域{{message}}!3。创建vue的实例对象bodyhtml
2。内容渲染指令!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbodyp姓名:{{username}}p性别:{{gender}}p{{desc}}}pvhtmldescbodyhtml
注意:{{}}为模板语法;{{desc}}只会显示原始内容;
使用vhtml指令就能将desc:百度这部分内容以HTML的方式渲染出来,在浏览器中就会变成一个超链接的形式。3。属性绑定指令!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbody百度inputtypetext:placeholderinputValueimg:srcimgq01。71396。combleg3b6c9c679ff121e6。jpg:style{width:w}altbodyhtml
标签是有属性的,属性的绑定需要叫冒号:
还有一个写法就是加vbind:但是一般都会把vbind省略,就保留:号。
比如:input输入框有type属性,placeholder属性;img图片的src属性,style样式属性等,都要在前面加:号。
:号后面的是一个变量或表达式。4。使用javaScript表达式!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbody!Vue实例要控制的DOM区域p{{number1}}p{{ok?True:False}}p{{message。split()。reverse()。join()}}p:idlistidxxxp{{user。name}}bodyhtml
解释:
number1变量加1
ok?True:False三元表达式
message。split()。reverse()。join()字符断点翻转
user。name调用user的name属性。5。事件绑定指令
前端绑定事件操作:比如点击后加1;!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件head!Vue实例要控制的DOM区域h3count的值为:{{count}}h3buttonvon:clickaddCount1buttonbuttonclickcount11buttonbodybodyhtml
说明:count的值初始定为0。
按钮点击会触动addCount方法。在下面的addCount()方法中定义了count的值自增1。
von:在这里可以简写成
直接在按钮中定义了表达式。
如果逻辑简单可以直接用表达式,逻辑复杂可以定义函数来完成。
按钮中的count数据发生变化,{{count}}里面的count的值自动变化,页面也自动刷新。
自定义的方法定到methods里面,这里的this就是指vm对象,用this。就可以访问上面的初始count0。
6。条件渲染指令!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbodybuttonclickflag!flagToggleFlagbuttonpvifflag请求成功被vif控制pvshowflag请求成功被vif控制bodyhtml
说明:
vif传递的是一个布尔值,如果值为true,标签被渲染,如果为false标签就不会被渲染。
运行结果,可以看到两个
标签在浏览器中都看不到,区别为
vif的值为false,该标签不会创建出来;
vshow的值为false,该标签会被创建出来,但是会隐藏起来,不会在浏览器中显示出来。
如果标签频繁被切换,使用vshow效率更加高一点。
点击按钮:,里面通过!flag将flag值取反,这样flag的值就由false变成了true,这样两个
标签的内容就显示在浏览器上了。
7。velse和velseif指令!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbodypvifnum0。5随机数0。5pvelse随机数0。5hrpviftypeA优秀pvelseiftypeB良好pvelseiftypeC一般pvelse差测试buttonclicka!a点击buttonbodyhtml
velse和velseif指令就是判断语句的用法num:Math。random(0。99)
设置1以内的随机数赋值给num,两个
标签中根据num的值显示不同内容pvifnum0。5随机数0。5pvelse随机数0。5
这里直接给type赋值了B,有兴趣了可以自己写一个方法,随机赋值ABCD,这样就可以在浏览器中出现相应的成绩。type:B
运行结果:
8。列表渲染指令!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbodyullivfor(user,i)inuserList索引是{{i}},姓名是:{{user。name}}liulbodyhtml
定义了一个userList数组(注意:数组用〔〕符号)用于存数据,里面赋值了3个有id和name属性的对象。这里的数据也可以从后端传过来,后面会讲前后端的联调。livfor(user,i)inuserList
vfor后面的可以带一个参数,这时取出来就是对应的元素。这里的两个参数(user,i),前面的是元素,后面的是索引。in后面是需要循环的数据userList,这时userList里面有多少个元素,标签就会被创建几个。所以这里写的是一个标签,浏览器显示出来的是三个标签的内容。
运行结果
9。vfor中的key!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8metahttpequivXUACompatiblecontentIEedgemetanameviewportcontentwidthdevicewidth,initialscale1。0titleDocumenttitle!1。导入vue的脚本文件headbody!添加用户的区域inputtypetextvmodelnamebuttonclickaddNewUser添加新用户button!用户列表区域ullivfor(user,index)inuserListinputtypecheckbox姓名:{{user。name}}liulbodyhtml
运行结果:
对文本框中输入新用户姓名,比如:george点击添加新用户按钮,结果如下:
pc电源维修(电脑电源维修很简单)pc电源维修(电脑电源维修很简单)接修一台爱国者电竞500W电脑开关电源,接电脑测试电脑风扇正常转动,电脑不开机,拆开后电源内部如下,电源内部零件外观没有明显损坏,用万用……
他用一辈子拍信仰,经过作品的人都被吸引而驻脚当你的眼睛不停注视着手机屏幕,充斥着大量接踵而至的信息,来不及去思考上一条信息内容又收到一条新消息。这个时候我们不妨把目光转向自然,转向画廊新展,转向可以免除焦虑可以被治愈的画……
物质本质猜想我对物质的来源有一种猜测。假设我们有一张纸,这张纸代表空间。物质则是空间的褶皱,在上面放一个钢球压出的压缩空间就是带正电的物质,而从下往上压就是带负电的物质。正电物质和负电物质……
电容笔有什么用(电容笔有什么用处)电容笔有什么用(电容笔有什么用处)随着平板电脑的日渐普及,越来越多的人开始喜欢在平板上做笔记或是画画,然而对于电容笔的认识,大多数人也许都还停留在淘宝上买手机配件时候赠送……
安卓手机定位软件哪个好用不收费(查手机定位哪个软件靠谱)安卓手机定位软件哪个好用不收费(查手机定位哪个软件靠谱)随着移动互联网的不断深入,很多公司已经不在用传统的指纹打卡机了,采用了软件定位打卡。钉钉作为阿里巴巴的主推产品,已经有越……
手机定位哪个软件好用免费的(手机定位哪个软件)手机定位哪个软件好用免费的(手机定位哪个软件)微信是我们日常用的社交软件,因为有大量信息的缘故,我们有可能找不到我们需要用的聊天记录,所以我们就需要进行查找,下面小编就告……
生活知识科普桃和啤酒能一起吃吗在我们的生活当中有很多的常识性的知识大多数人都是不知道的,就好比最近就有很多小伙伴咨询小编问小编关于桃和啤酒能一起吃吗的这些知识点,这就说明了现在人们也开开渐渐关注起了桃和啤酒……
星链第一个轨道层部署完成,大力拓展欧洲农村市场自今年2月起,SpaceX开始向特定用户提供星链测试互联网服务,五月初,SpaceX表示已经有50万个用户预定了星链卫星宽带服务。到目前为止,多个欧洲国家用户目前已经在使……
乌鸦像写字台(乌鸦为什么像写字台,更像是一种托词)乌鸦像写字台(乌鸦为什么像写字台,更像是一种托词)提到乌鸦,我们可能一下子就想到的是乌鸦丢小石子喝水的故事,或者一个人说话很讨厌的时候我们就会说他是乌鸦嘴,但也时常听到有……
电纺碳铁纳米纤维铁的催化作用及其在去除六价铬中的应用Carbon:电纺碳铁纳米纤维:铁的催化作用及其在去除六价铬中的应用DOI:10。1016j。carbon。2020。05。031本研究制备了电纺聚丙烯腈硝酸铁(PANF……
四川凉山再发森林大火消防队员紧急救援年前我们都知道凉山发生大型森林火灾,为此已经牺牲了好几位消防队员,可以说整个国家的人民触动,因为在和平年代真的依然有人在负重前行,生活并不是我们想象的那么美好。目前根据四……
天池水怪究竟是远古生物,还是恶作剧?还没有明确的答案风光秀丽的长白山天池,坐落于吉林省东南方的长白山与朝鲜的交界处,是一座休眠了300多年的火山口,地下水顺着火山口流出地表,形成了壮观的火山天池,被列为世界上海拔最高的高山湖泊。……