前端最火Vue从新手村到老师傅(一)

在这里插入图片描述

1.1vue.js下载

进入到vue.js的官方网站: https://cn.vuejs.org/

2.1 VueのHelloWorld

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				msg:"helloworld"
			}
		});
	};
	</script>
</head>
<body>
	<!--Vue的入门程序:HelloWorld-->
	<div id="box">
		{{msg}}  <!--使用{{}}来获取Vue中data的数据 -->
	</div>
</body>
</html>

运行结果
在这里插入图片描述
生成了第一个vue的应用,现在数据的DOM已经绑定,所有的数据都可以被响应,上述代码中{{msg}}将会被vue的数据对象的msg属性值替换掉,而且msg的值改变的时候,文本中的值也会改变,我们可以通过v-once指令,执行一次性的插值,当数据改变时插值不再改变…

<!--Vue的入门程序:HelloWorld-->
	<div id="box">
		{{msg}}  <!--使用{{}}来获取Vue中data的数据 -->
		<p v-once>{{msg}}</p>
	</div>

2.2 表达式

{{}} 标签也接收表达式形式的值,表达式可以由JavaScript表达式或过滤器构成,过滤器可以没有,也可以多个

表达式是各种数值,变量,运算符的综合体,也可以是JavaScript的一些函数

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				msg:"helloworld"
			}
		});
	};
	</script>
</head>
<body>
	<!--Vue的入门程序:HelloWorld-->
	<div id="box">
		1.{{msg}} </br> <!--使用{{}}来获取Vue中data的数据 -->
		2.{{msg.substring(0,2)}}</br>
		3.{{100/2}}</br>
		4.{{true?2:0}}</br>
	</div>
</body>
</html>

运行结果

在这里插入图片描述

2.3 Vue常见指令

Vue.js 指令带有前缀v-
以表示他们是Vue提供的特殊的属性,它推展了HTML标签的功能

1.v-model : 能轻松实现表单输入和应用状态之间的双向绑定,用在input,select,text,checkbox等表单元素

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				msg:"helloworld"
			}
		});
	};
	</script>
</head>
<body>
	<!--v-model指令-->
	<div id="box">
		<input type="text" v-model='msg'>
		<hr/>
		{{msg}}
	</div>
</body>
</html>

运行结果
在这里插入图片描述
注意:使用v-model指令的标签也必须位于Vue控制的标签内部。

但是输入框的值改变时刻改变着Vue中的data值
于是Vue提供了一个修饰符

1.1.lazy - 取代 input 监听 change 事件

在默认情况下,v-modelinput 事件中同步输入框的值与数据,但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:

即 :

<input type="text" v-model.lazy='msg'>
		<hr/>
		{{msg}}

运行结果

在这里插入图片描述
当输入框失去焦点时
在这里插入图片描述
如果不加.lazy时,你修改了文本框的值,对应的{{msg}}会同步变化,但是如果加了.lazy后,你在修改文本框的值时,{{msg}}的值不会同步变化,而是当该文本框失去焦点时,才会改变{{msg}}的值

1.2 .number 输入字符串转为数字

<input type="number" v-model.number='msg'>
		<hr/>
		{{msg}}

1.3 .trim 输入首尾空格过滤
在这里插入图片描述
2. v-if 指令条件渲染,可以根据表达式的值在DOM中生成或移除一个元素,如果v-if表达式是true,那么对应元素的一个克隆将被重新插入DOM中,否则从DOM移除

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				msg:"     helloworld    ",
				num:3
			}
		});
	};
	</script>
</head>
<body>
	<!--v-model指令-->
	<div id="box">
		<input type="text" v-model.trim='msg'>
		<hr/>
		{{msg}}
		</hr>
		<p v-if="num==2">我等于2</p>
	</div>
</body>
</html>

运行结果 : 应该不能出现"我等于2"

在这里插入图片描述

将Vue中的num改为2后
运行结果 :
在这里插入图片描述
如果想切换多个元素,则可以使用<template>元素当作包装元素,在<template>元素中使用v-if,可以进行多个元素的切换

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				msg:"     helloworld    ",
				num:2
			}
		});
	};
	</script>
</head>
<body>
	<!--v-model指令-->
	<div id="box">
		<input type="text" v-model.trim='msg'>
		<hr/>
		{{msg}}
		</hr>
		<p v-if="num==2">我等于2</p>
		
	<h2>----分割----</h2>
		
		<template v-if="num==2">
			<p>hello Vue</p>
			<hr>
			<p>我也来个我等于2</p>
		</template>
	</div>
</body>
</html>

运行结果 :
在这里插入图片描述
3. v-else指令 : 表示v-if的"else块"
在这里插入图片描述
4. v-else-if,充当v-if的"else-if块"
在这里插入图片描述
这里就不一一把运行结果演示了…

5.v-for : 指令可以绑定数组的数据来渲染的一个项目列表 : 也就是循环指令

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>v-for指令</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				vforDemo:["vue1","vue2","vue3","vue4"]
			}
		});
	};
	</script>
</head>
<body>
	<!--v-model指令-->
	<div id="box">
		<ul>
			<li v-for="item in vforDemo">
				{{item}}
			</li>
		</ul>
	</div>
</body>
</html>

运行结果 :
在这里插入图片描述
如果想获取数组中的下标,()的顺序是 : 数组的元素,数组的下标

<div id="box">
		<ul>
			<li v-for="(value,index) in vforDemo">
				{{index}}==>{{value}}
			</li>
		</ul>
	</div>

运行结果 :
在这里插入图片描述
如果遍历的对象是json对象,()的顺序是 : json对象的属性值,对象的属性名,下标

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>v-for指令</title>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
	window.onload = function(){
		var app = new Vue({
			el:'#box', //指明数据展示在哪个view里面
			data:{    //data: 表示需要展示的数据
				names:["lily","lucy","hanmeimei","lilei"],
				json:{a:"dog",b:"cat",c:"peg"}
			}
		});
	};
	</script>
</head>
<body>
	<!--v-model指令-->
	<div id="box">
		<ul>
            <!-- -注意:顺序: 第一个位置是value, 第二个是key,第三个是 index->
			<li v-for="(value,key,index) in json">
				{{value}} ==>{{key}} ==>{{index}} 
			</li>
		</ul>
	</div>
</body>
</html>

运行结果 :

在这里插入图片描述
6.v-show指令 : 根据表达式的值来显示或者隐藏HTML元素,当v-show表达式的值为false时,元素将被隐藏,查看DOM时,会发现元素上多了一个行内样式
style=“display : none”
在这里插入图片描述
7.v-text指令 : 更新元素的textContent,注意v-text对于内容是包含HTML标签的,不会进行HTML的解析,只作为普通字符串
在这里插入图片描述
运行结果 :
在这里插入图片描述

8.v-html : 数据解释为普通文本,而非HTML代码,为了输出真正的HTML,你需要v-html指令
在这里插入图片描述
运行结果 :
在这里插入图片描述
9. v-on : 用于绑定事件,事件类型由参数指定,表达式可以是一个方法的名字或者一个内联语句
可以用v-on指令监听DOM事件来出发一些JavaScript代码

注意 : v-on可以简写成@click
在这里插入图片描述
这里就是Vue的简单的数据绑定的标签了
接下来会解析Vue的数据交互…

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值