vue的简单学习

vue和thymeleaf :

        若先显示框架后加载数据则用vue

        若后端处理好之后发送给前端页面显示用thymeleaf (弹幕)

对于前后端分离的认识:

        使用vue 将前端页面、框架等建立好,只需要后端发送数据即可

        但thymeleaf就需要在服务器启动之前将数据保存到session等作用域中发送给前端,之后才会使用thymeleaf渲染这些数据。

1、定义js对象

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="src/main/webapp/srcipt/vue.js"></script><script language="JavaScript">function hello(){person.sayhello();}//定义js 对象var person ={"pid":"p001","pname":"jim","sayhello":function (){alert("Hello world");}}</script>
</head>
<body><div id="div0"><span>Hello</span><input type="button" value="打招呼" onclick="hello()"></div>
</body>

2、定义vue对象

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="srcipt/vue.js"></script><script language="JavaScript">//window.onload 类似于java中的staticwindow.onload=function (){var vue = new Vue({//el:element 标识当前的vue对象可以和对应的div_id 进行绑定"el":"#div0",data:{// data中的元素以key-value方式存储,以 , 分割msg:"hello world!",uname:"李元霸"},methods:{}});}</script>
</head><body><div id="div0"><span>{{msg}}   </span></div>
</body>

2.1 new Vue({}) 

每个vue对象有3个标识符:

        el : 标识当前的vue对象可以和对应的div_id 进行绑定

        data: 存放json类型的数据

        methods:存放定义的一些函数

2.2 声明式渲染

再<body>体 中可以使用{{vue.data.key}}来显示对应的value

 window-onload 认识:

JS中window.onload事件详解_pseudonym_的博客-CSDN博客_window.onload

3、vue中语法 

3.1 v-bind:value

        表示将value属性交给vue进行管理即绑定到Vue对象:

<body><div id="div0"><span>{{uname}}</span><input type="text" v-bind:value="uname"></div>
</body>

        此时我们只需要改变Vue对象中的uname值即可改变文本框中显示的值。

3.2 v-model:value

        也是将value属性交给Vue对象进行管理,但与v-bind不同的是v-model为双向绑定,即我们再文本框中也可以改变Vue对象中data属性里的值。

<body><div id="div0"><span>{{msg}}</span><br/><input type="text" v-model:value="msg"></div>
</body>

        页面显示结果:

         当修改文本框中的值:

4   vue语法之if

4.1 v-if、v-else

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="srcipt/vue.js"></script><script language="JavaScript">window.onload=function (){var vue = new Vue({"el":"#div0",data:{num:2}});}</script>
</head><body><div id="div0"><input type="text" v-model:value="num"><div v-if="num%2==0" style="width:100px;height: 100px;background-color: chartreuse;">&nbsp;</div><div v-else="num%2==0" style="width:100px;height: 100px;background-color: orangered;">&nbsp;</div></div>
</body>

注 v-else中也需要写与v-if中一样的条件进行判断,并且两个节点之间不能有其他节点!

页面展示结果:

        当num为偶数时 颜色为chartreuse:

         当num为奇数时 颜色为orangered:

4.2 v-show 

<body><div id="div0"><input type="text" v-model:value="num"><div v-show="num%2==0" style="width:200px;height: 200px;background-color: blueviolet;">&nbsp;</div></div>
</body>

        v-show通过控制其display属性来确定是否显示

         等于说 如果满足条件 display就不为none,就会显示,否则为none,就不显示。

5、vue语法之for

        基本语法为 v-for="循环体 in 集合"

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="srcipt/vue.js"></script><script language="JavaScript">window.onload=function (){var vue = new Vue({"el":"#div0",data:{fruitList:[{fname:"苹果",price:5,fcount:100,remark:"苹果很好吃"},{fname:"香蕉",price:100,fcount:666,remark:"香蕉很好吃"},{fname:"橘子",price:23,fcount:455,remark:"orange很好吃"},{fname:"香瓜",price:41,fcount:555,remark:"香瓜很不好吃"}]}});}</script>
</head>
<body><div id="div0"><table border="1" width="400" cellpadding="4" cellspacing="0"><tr><th>名称</th><th>单价</th><th>库存</th><th>备注</th></tr><tr v-for="fruit in fruitList"><td>{{fruit.fname}}</td><td>{{fruit.price}}</td><td>{{fruit.fcount}}</td><td>{{fruit.remark}}</td></tr></table></div>
</body>

页面显示结果:

6、事件驱动

6.1 v-on:click

6.1.1字符串顺序反转

        <input type="button" value="反转" v-on:click="myReverse"/>

首先在按钮上定义事件通过v-on:click来绑定事件,之后再Vue中再method属性中写对应事件的函数即可。

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="srcipt/vue.js"></script><script language="JavaScript">window.onload=function (){var vue = new Vue({"el":"#div0",data:{msg:"hello world!"},methods:{myReverse:function (){this.msg=this.msg.split("").reverse().join(""),}}});}</script>
</head>
<body><div id="div0"><span>{{msg}}</span>// v-on:click 也可以简写为@click<input type="button" value="反转" v-on:click="myReverse"/></div>
</body>

注: str.split("")与str.join("") 都是将字符串按照 "  "内的值来进行分割或者连接的

example1: msg = "hello world " , msg.split("o")

展示结果为:

即以 字符o 作为分割的值。

example2:msg = "hello world " , msg.split(" ")

展示结果为

即以 字符 空格 作为分割的值。

 6.2 侦听属性

        所谓“侦听”就是对message的属性进行监控,当值发生改变时调用一些函数等,

        小白案例:

<head><meta charset="UTF-8"><title>Title</title><script language="JavaScript" src="srcipt/vue.js"></script><script language="JavaScript">window.onload=function (){var vue = new Vue({el:"#div0",data:{num1:1,num2:2,num3:0},watch:{//侦听属性:num1 和num2 当num1的值发生改变时调用后面的方法num1:function (newValue){this.num3 = parseInt(newValue)+parseInt(this.num2);},num2:function (newValue){this.num3 = parseInt(newValue)+parseInt(this.num1);}}});}</script>
</head>
<body><div id="div0"><input type="text" v-model:value="num1" size="2">+<input type="text" v-model:value="num2" size="2">=<span>{{num3}}</span></div>
</body>

7、Vue的生命周期

7.1 vue对象创建

 /*vue对象创建之前*/beforeCreate:function (){/*此时再浏览器控制台里会显示:msg:undefined */console.log("beforeCreate:vue对象创建之前--------");console.log("msg:"+this.msg);},/*vue对象创建之后*/created:function (){console.log("Created:vue对象创建之后--------");console.log("msg:"+this.msg);},</body>

        控制台输出结果:

 7.2 数据装载

        数据装载指 再<body>体内把对应的表示的 变量 赋值:

 /*数据装载之前*/beforeMount:function (){console.log("beforeMount:数据装载之前--------");console.log("msg:"+document.getElementById("a").innerText);},/*数据装载之后*/mounted:function (){console.log("mounted:数据装载之后--------");console.log("msg:"+document.getElementById("a").innerText);},<body><div id="div0"><span id="a">{{msg}}</span></div>
</body>

        控制台输出结果:

 可以看到数据装载之前 <span>中表示的动态内容是静态的,并没有赋值。

7.3数据更新

               methods:{change:function (){this.msg = this.msg + "world";}},beforeUpdate:function (){console.log("beforeUpdate:数据更新之前--------");console.log("msg:"+this.msg)console.log("span:"+document.getElementById("a").innerText);},/*数据更新之后*/updated:function (){console.log("updated:数据更新之后--------");console.log("msg:"+this.msg)console.log("span:"+document.getElementById("a").innerText);}<body><div id="div0"><input type="button" value="点我" v-on:click="change"/></div>

         展示结果:

        初始页面:

          点击按钮之后:

        再次点击: 

         控制台输出结果:

  

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

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

相关文章

easyui下拉框option写死_JavaScript_jQuery+easyui中的combobox实现下拉框特效,1.第一种写法:Input框中显示: - phpStudy...

jQueryeasyui中的combobox实现下拉框特效1.第一种写法&#xff1a;Input框中显示&#xff1a;2. 第二种用法&#xff0c;在list列表中显示&#xff1a;类别3. 第二种的另一种写法&#xff1a;类别以上3种方法均可实现jQuery.easyui的下拉框特效&#xff0c;大家自由选择&#x…

Selleck --- 01Cookie

1. //1.设置Cookie function setCookie(name,value,days) {var date new Date();date.setDate(date.getDate() days);document.cookie name "" value ";expires" date; } console.log(setCookie("pwd","5566778899",1)); //获取c…

audino python_用 Python 实现 PowerDesigner 数据模型文件的处理

简述目前在银行研发中心做项目管理工作。我们单位的项目经理从需求、设计、编码到测试以及上线&#xff0c;都要有很大程度的参与。没有工具支持&#xff0c;很多事根本忙不过来、或者没法在有限的时间里保证项目质量。大概半年前开始接触PYTHON&#xff0c;多多少少写了一些能…

JS~~~ 前端开发一些常用技巧 模块化结构 命名空间处理 奇技淫巧!!!!!!...

前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;2016-09-29 17:16:39 #####背景&#xff1a; 前端开发过程中&#xff0c;创建js对象…

会移动的文字(Marquee)

Marquee标记用于在可用浏览区域中滚动文本。这个标记只适用于IE3以后的版的浏览器。 ??   格式&#xff1a; ??   <MARQUEE ALIGN"…" ??   BEHAVIOR"…" ??   BGCOLOR"…" ??   DIRECTION"…" ??   HEIGH…

vscode 英伟达tk1_英伟达的未来,不只是GPU

成立于1993年的英伟达&#xff0c;最为人熟知的就是他们的GPU。尤其是进入最近几年&#xff0c;因为AI的火热&#xff0c;英伟达GPU的关注度暴增&#xff0c;行业对他们在这个领域的认可程度也达到了前所未有的高度。但其实GPU只是英伟达的根本。历经过去几年的收购和产品线拓展…

语法2

页面(PAGE)标记(TAGS) HTML 文件结构(Document Structures)<html>...</html><head>...</head><body>...</body><HTML><HEAD> <title>, <base>, <link>, <isindex>, <meta></HEAD><…

生成n对括号的合法全排列

生成n对括号的合法全排列&#xff1a; 给定一整数N&#xff0c;输出N对括号的合法全排列 例&#xff1a; 2 3 ()() (()) ()()() (())() ()(()) ((())) 分析&#xff1a; 很经典的需要迭代来进行实现。 迭代的关键在于找到跳出迭代的条件&#xff0c;以及每次迭代的策略。 出口&…

springMVC 源码学习-请求映射原理

一、DispatcherServlet的继承关系 1、FrameworkServlet HttpServlet中的doGet等方法在FrameworkServlet之中重写了&#xff0c;都是调用该方法&#xff1a; 在这个方法内部调用doServlce的方法 这个doService的方法在FrameworkServlet中是一个抽象方法&#xff0c;说明是交给它…

constraintlayout布局新特性_AMD发布Ryzen PRO 4000系列移动处理器:多了超线程和商用安全特性...

昨日晚间&#xff0c;AMD正式发布了基于Renoir的最新一代商用移动处理器Ryzen PRO 4000系列&#xff0c;本次共发布3款处理器&#xff0c;分别是Ryzen 7 PRO 4750U、Ryzen 5 PRO 4650U和Ryzen 3 PRO 4450U&#xff0c;我们制作了规格对比表&#xff0c;如下&#xff1a;从规格对…

网页设计中HTML常范的五个错误

1.网页背景色的设置犯错机率&#xff1a;很大普遍性&#xff1a;较广犯错可能性&#xff1a;懒/不知道约2年前我曾发现21cn上出现过一次没有设置背景色的情况&#xff0c;当时我用Email通知了他们&#xff0c;自此之后这个问题我从没犯过。绝大部分人的窗口背景颜色都是白色&am…

mkdir与mkdirs的区别

项目中需要在代码中读取或创建文件保存路径&#xff0c;用到了mkdir&#xff0c;查看还有个mkdirs方法&#xff0c;这里记录一下两者的区别。 1、关于两者的说明如下&#xff1a; boolean mkdir() : 创建此抽象路径名指定的目录。 boolean mkdirs() : 创建此抽象路径名指定…

易支付系统源码_刷脸支付系统源码,插件源码合作模式有哪些,采购源码需要注意什么...

对刷脸支付比较关注的朋友&#xff0c;应该都知道源码。当拥有这个&#xff0c;就意味着有了独立的系统。也意味着可以打造自己的品牌&#xff0c;转化自己资源&#xff0c;获取更多的利润。但是想拥有一套源码也是不简单的&#xff0c;不仅因为编写的难度和价格&#xff0c;也…

网吧修改

Windows Registry Editor Version 5.00 (打开任务管理器) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]"DisableTaskMgr"dword:00000000 (恢复桌面右键菜单) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Poli…

SpringMVC源码-不同类型的参数解析

随便写一个demo: RequestMapping("/car/{id}")public Map<String, Object> getCar(PathVariable("id") Integer id,RequestParam("type") String type,RequestParam("hobby") List<String> hobby){Map<String, Object&…

Gym 100917J---Judgement(01背包+bitset)

题目链接 http://codeforces.com/gym/100917/problem/J Description standard input/outputStatementsThe jury of Berland regional olympiad in informatics does not trust to contest management systems, so the Berland regional programming contest is judged by the n…

raid5 合适 多少块硬盘_raid1 raid2 raid5 raid6 raid10如何选择使用?各需要几块硬盘?...

我们在做监控项目存储时&#xff0c;经常会用到磁盘阵列&#xff0c;什么是磁盘阵列呢&#xff1f;那为什么要做磁盘阵列呢&#xff1f;raid1 raid2 raid5 raid6 raid10各有什么优势&#xff1f;本期我们来看下。一、什么是Raid&#xff1f;它有什么作用&#xff1f;1、什么是R…

常用设置

Windows Registry Editor Version 5.00 (加快程序运行速度)[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]"NtfsDisable8dot3NameCreation"dword:00000000"Win31FileSystem"dword:00000000"Win95TruncatedExtensions"dword:…

SpringMVC 源码学习 返回值处理

SpringMVC中对返回值的数据基本分为两类&#xff1a; 1、响应数据 2、响应页面 一、响应数据 响应数据大多数都是将返回值的格式转换为JSON格式然后展示在页面或者保存i起来。 第一步&#xff1a;在SpringBoot中需要引入json场景 <dependency><groupId>org.sprin…

洛谷10月月赛Round.1| P3399 丝绸之路 [DP]

题目背景 张骞于公元前138年曾历尽艰险出使过西域。加强了汉朝与西域各国的友好往来。从那以后&#xff0c;一队队骆驼商队在这漫长的商贸大道上行进&#xff0c;他们越过崇山峻岭&#xff0c;将中国的先进技术带向中亚、西亚和欧洲&#xff0c;将那里的香料、良马传进了我国。…