vue学习(一)

Vue的学习(一)

一、Vue的使用

1.1 使用实例化对象赋值
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id = "app">
			hello:{{name}}
			
		</div>
		
		<script>
			let vm = new Vue({
				el: "#app",
				data:{
					name:"zs",
				}
			})
		</script>
	</body>
</html>
1.2 双向绑定
<div id = "app">
			hello:{{name}}
			<br />
			<input v-model="name" />
			
		</div>
		
		<script>
			let vm = new Vue({
				el: "#app",
				data:{
					name:"zs",
				}
			})
		</script>

二、文本渲染

  • v-text:更新元素的innerText
  • v-html:更新元素的innerHTML
  • v-once:静态插值
  • v-pre:原格式输出
  • v-cloak:指令保持在元素上直到关联实例结束编译
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		
		<div id="app">
			<div>{{message}}</div>
			<div v-text="message1"></div>
			<div v-html="message2"></div>
			<div v-once="message3"></div>
			<div v-pre="message4">{{message4}}</div>
			<div v-cloak="message5">{{message5}}</div>
		</div>
		
		<script>
			var vm = new Vue({
				el: "#app",
				data:{
					message:"文本渲染",
					message1:"this is <i>v-text</i>",
					message2:"this is <i>v-html</i>",
					message3:"this is <i>v-once</i>",
					message4:"文本渲染",
					message5:"文本渲染",
				}
			})
		</script>
	</body>
</html>

在Vue中,我们可以使用{{}}将数据插入到相应的模板中,这种方法是一种文本插值。

三、属性绑定

vue中常用的属性绑定v-bind。

以下是基本绑定和对象绑定。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素绑定</title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="demo">
			<!-- 将div中的title属性和vue实例的相关字段进行绑定,
			第一种写法是完整语法,第二种是缩写方式,比较常用-->
			<div v-bind:title="title1">绑定</div>
			<div :title="title2">绑定</div>
			<!-- 对象绑定 如果对应style为false,则不执行-->
			<div :class="{active:isActive,'text-danger':hasError}">给class绑定一个对象,动态切换</div>
			<div :class="{active:isActive,'textDanger':!isActive}">给class绑定一个对象,动态切换</div>
			<div :class="classObj">给class绑定一个对象,动态切换</div>
	
		</div>
		<script>
			var vm = new Vue({
				el:"#demo",
				data:{
					title1:"html",
					title2:"css",
					isActive:true,
					hasError:true,
					classObj:{
						"textColor":true,
						"textSize":false,
					}
				},
				
			})
		</script>
	</body>
</html>

四、事件处理

我们可以用 v-on 简写为 & 指令绑定一个事件监听器,通过它调用我们 Vue 实例中定义的方法。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>vue</title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		 <div id="demo">
			 <!--点击+1-->
			<button @click="counter += 1">{{counter}}</button>
			<!--点击加字符串-->
			<button v-on:click="cl">{{message}}</button>
			<!--点击弹窗输出字符串-->
			<button @click="say('hi')">内联语句</button>
		</div>
		<script>
			var demo = new Vue({
				el:'#demo',
				data:{
					message: "hello",
					counter:0,
	          test:''
				},
				methods:{
					cl(){
						this.message = this.message + ' vue!';
					},
	          say(message){
			         this.test = message;
			         alert(this.test);
			     },
				}
			})
		</script>    
</body>
</html>

五、条件渲染

5.1 v-if

v-if主要用于条件渲染

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id = "app">
			<div id = "person">
				
				<p v-if = "before">张三</p>
				<p v-if = "after">李四</p>
				
			</div>
		</div>
		
		<script>
			let vm = new Vue({
				el: "#person",
				data:{
					before:true,
					after:false
				},
			})
		</script>
	</body>
</html>

结果为:张三

总结:值为true时进行渲染,为false时页面不会渲染。

5.2 v-else和 v-else-if
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="./vue.js"></script>
</head>
<body>
    <div id="demo">
        <p v-if="message">hello</p>
        <button @click="A">点我</button>
        <div v-if="type === 1">A</div>
        <div v-else-if="type === 2">B</div>
        <div v-else-if="type === 3">C</div>
        <div v-else>D</div>
        <button @click="B">点我</button>
    </div>
    <script>
        var demo1 = new Vue({
            el:'#demo',
            data:{
                message:true,
                type:0
            },
            methods:{
                A:function(){
                    this.message=false
                },
                B(){
                    if(this.type > 6){
                        this.type = 1;
                    }else{
                        this.type++;
                    }
                },
            }
        })
    </script>        
</body>
</html>
5.3 v-if和v-show
<body>
    <div id="demo">
        <p v-show="message">message</p>
        <p v-show="infor">infor</p>
    </div>
    <script>
        var demo1 = new Vue({
            el:'#demo',
            data:{
                message:true,
                infor:false
            },
        })
    </script>    
</body>

六、循环指令

循环渲染是依赖于 v-for 指令,它能够根据 vue 的实例里面的信息,循环遍历所需数据,然后渲染出相应的内容。它可以遍历数组类型以及对象类型的数据,js 里面的数组本身实质上也是对象,这里遍历数组和对象的时候,方式相似但又稍有不同。

数组遍历 可选参数有属性值和索引值value/index;

对象遍历 可选参数包括属性值、索引值和属性名value/index/key。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id = "demo">
			
			<!-- 数组遍历-->
			<ul>
				<li v-for = "item in title" >{{item}}</li>
			</ul>
			<!-- 数组遍历带索引-->
			<ul>
				<li v-for="(item,index) in title">{{index}}---{{item}}</li>
			</ul>
			<!-- 对象遍历-->
			<ul>
				<li v-for= "(item,key,index) in object">{{index}}---{{key}}---{{item}}</li>
			</ul>
		</div>
		<script>
			var demo = new Vue({
				el:"#demo",
				data:{
					title:['全职高手','一人之下','秦时明月'],
					
					object:{
						vname:"全职高手",
						pname:"君莫笑",
						psort:"散人"
					}	
				},
				
			})
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值