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,一经查实,立即删除!

相关文章

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…

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

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

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;从规格对…

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

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

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&…

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

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

SpringMVC 源码学习 返回值处理

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

body div js 放大图片_jquery图片放大插件鼠标悬停图片放大效果

都知道jquery都插件是非常强大的&#xff0c;最近分享点jquery插件效果&#xff0c;方便效果开发使用。一、HTML代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> …

预览docx_Windows-快速预览文件-QuickLook

开源、免费的文件快速预览工具&#xff0c; 支持图片、文档、音视频、代码文本、压缩包等多种格式。获得 Mac OS 空格键快速预览文件相同的体验效果图文件夹音视频 浏览压缩包&#xff0c;文本支持的格式&#xff1a;图片&#xff1a;.png, .jpg, .bmp, .gif, .psd, .apng&…

json 微信小程序 筛选_微信小程序学习记录

全局配置app.json 文件用来对微信小程序进行全局配置。pages 类型为 String Array 是 页​面路径列表&#xff0c;创建目录和更改时会自动更改文件。用于指定小程序由哪些页面组成&#xff0c;每一项都对应一个页面的 路径文件名 信息。window 用于设置小程序的状态栏、导航条、…

一定质量的封闭气体被压缩后_多晶硅氯氢化装置补充氢隔膜压缩机十字头铜套磨损原因分析与改善探讨...

潘祝新&#xff0c;王永(江苏中能硅业科技发展有限公司&#xff0c;江苏徐州221004)[摘要]&#xff1a;补充氢气压缩机是多晶硅行业氯氢化装置中的关键设备&#xff0c;它为生产系统的稳定运行不断的补充高纯氢气&#xff0c;其稳定而高效的运行对于生产系统的稳定性及提高氯硅…

vue 生成发布包_年轻人如何从0到1封装发布一个vue组件__Vue.js

封装发布组件是前端开发中非常重要的能力&#xff0c;通过对常用组件的封装可以提升团队开发的效率&#xff0c;避免重复劳作且不方便维护。好的组件的抽象和封装能让组件得到更广泛和多环境兼容的应用。本文讲述了如何一步步从0到1封装发布一个常用的toast组件的过程。本文是搭…