Vue 学习总结笔记

Posted IT_Holmes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 学习总结笔记相关的知识,希望对你有一定的参考价值。

文章目录

1. Vue的 绑定class样式

1.1 Vue 的 三种绑定class的样式方式


Vue绑定class样式效果,就使用v-bind:class 或 :class来操作:

效果一,使用字符串方式绑定:

使用Math.random 和 Math.floor来随机变化class样式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="./js/vue.js"></script>
		<style type="text/css">
			.basic
				width: 300px;
				height: 100px;
				border: 1px solid black;
			
			.normal
				background-color: cornflowerblue;
				border: 2px solid red;
			
			.happy
				background-color: red;
				border: 2px solid yellowgreen;
			
			.sad
				background-color: gray;
				border: 2px solid sandybrown;
			
		</style>
	</head>
	<body>
		<div id="root">
			<!--
				绑定class样式,字符串写法,适用于:样式的类名不确定,需要动态指定。

				正常我们这里写两个class,它会默认读取第一个class,不会读取第二个class的。
				
				我们使用Vue绑定的话,使用的就是v-bind来绑定,就不用担心这个问题了!
			-->
			<div class="basic" :class="mood" @click="changeMood">name</div>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false;
			new Vue(
				el:"#root",
				data:
					name:'张三',
					mood:'normal'
				,
				methods:
					changeMood()
						const arr = ['happy','sad','normal'];
						//Math.random()生成的随机数,随机生成[0,1)的数字,会生成0,但是不会生成1。
						let i = Math.random()*3;
						//Math.floor()是向下取整。
						let down = Math.floor(i);
						this.mood = arr[down];
					
				
			)
		</script>
	</body>
</html>

效果二,绑定class样式,数组写法 ,使用数组来绑定多个class样式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="./js/vue.js"></script>
		<style type="text/css">
			.basic
				width: 300px;
				height: 100px;
				border: 1px solid black;
			
			.style1
				background-color: cornflowerblue;
			
			.style2
				border: 2px solid yellowgreen;
			
			.style3
				font-size: 40px;
			
		</style>
	</head>
	<body>
		<div id="root">
			<!--
				绑定class样式,数组写法,适用于:要绑定的样式个数不确定,名字也不确定。
			-->
			<div class="basic" :class="arr">name</div>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false;
			new Vue(
				el:"#root",
				data:
					name:'张三',
					arr:['style1','style2','style3']
				
			)
		</script>
	</body>
</html>

这种方式很好,我们可以直接通过操作arr数组,就可以改变样式的相关操作了。


效果三,绑定class样式,对象写法,适用于:要绑定的样式个数确定,名字也确定,但要动态决定用不用。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="./js/vue.js"></script>
		<style type="text/css">
			.basic
				width: 300px;
				height: 100px;
				border: 1px solid black;
			
			.style1
				background-color: cornflowerblue;
			
			.style2
				border: 2px solid yellowgreen;
			
			.style3
				font-size: 40px;
			
		</style>
	</head>
	<body>
		<div id="root">
			<!--效果三,绑定class样式,对象写法,适用于:要绑定的样式个数确定,名字也确定,但要动态决定用不用。-->
			<div class="basic" :class="obj">name</div>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false;
			new Vue(
				el:"#root",
				data:
					name:'张三',
					obj:
						style1:false,
						style2:false,
						style3:false,
					
				
			)
		</script>
	</body>
</html>

数组写法和对象写法的style样式绑定是最常用的!

1.2 Vue 的class绑定样式 改变数值


像下面这种方式,想要通过data中的参数动态修改值的话,如果按照之前的写法就写成这种样子:
:style="font-size: sizeNumpx;"

但是,这种不对!Vue无法识别!因此可以改成下面的方式:
:style="fontSize: sizeNum+‘px’" 。

这种方式太麻烦,了解就好。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="./js/vue.js"></script>
		<style type="text/css">
			.basic
				width: 300px;
				height: 100px;
				border: 1px solid black;
			
			.style1
				background-color: cornflowerblue;
			
			.style2
				border: 2px solid yellowgreen;
			
			.style3
				font-size: 40px;
			
		</style>
	</head>
	<body>
		<div id="root">
			<!--
				如果按照之前的写法就写成这种样子:
					:style="font-size: sizeNumpx"
				但是,这种不对!Vue无法识别!因此可以改成下面的方式:
					:style="fontSize: sizeNum+'px'" 。
			-->
			<div class="basic" :style="fontSize: sizeNum+'px'">name</div>
		</div>
		<script type="text/javascript">

			//上面的样子就像下面的对象样式一样!
			// let test = fontSize: sizeNum+'px';

			Vue.config.productionTip = false;
			new Vue(
				el:"#root",
				data:
					name:'张三',
					sizeNum:40
				
			)
		</script>
	</body>
</html>

通过样式对象写法来确定值的效果:

这里有个规律,就是两个单词组成的就小驼峰法连接起来就可以了。
例如:background-color 就可以写为 backgroundColor。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="./js/vue.js"></script>
		<style type="text/css">
			.basic
				width: 300px;
				height: 100px;
				border: 1px solid black;
			
			.style1
				background-color: cornflowerblue;
			
			.style2
				border: 2px solid yellowgreen;
			
			.style3
				font-size: 40px;
			
		</style>
	</head>
	<body>
		<div id="root">
			<!--
				能够修改数值的vue绑定对象的写法:

				这里有个规律,就是两个单词组成的就小驼峰法连接起来就可以了。
				例如:background-color 就可以写为 backgroundColor
			-->
			<div class="basic" :style="[styleObj , styleObj2]">name</div>
		</div>
		<script type="text/javascript">

			Vue.config.productionTip = false;
			new Vue(
				el:"#root",
				data:
					name:'张三',
					styleObj:
						fontSize:'40px',
						backgroundColor:'red'
					,
					styleObj2:
						color:"green",
						border:"2px solid yellow"
					
				
			)
		</script>
	</body>
</html>

上面的方式我们还可以简写一下! 就直接通过数组,数组中存储样式对象的内容,就可。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="./js/vue.js"></script>
    <style type="text/css">
        .basic 
            width: 300px;
            height: 100px;
            border: 1px solid black;
        

        .style1 
            background-color: cornflowerblue;
        

        .style2 
            border: 2px solid yellowgreen;
        

        .style3 
            font-size: 40px;
        
    </style>
</head>
<body>
<div id="root">
    <!--

        能够修改数值的vue绑定对象的写法:

        这里有个规律,就是两个单词组成的就小驼峰法连接起来就可以了。
        例如:background-color 就可以写为 backgroundColor
    -->
    <div class="basic" :style="arrObj">name</div>
</div>
<script type="text/javascript">

    Vue.config.productionTip = false;
    new Vue(
        el: "#root",
        data: 
            name: '张三',
            arrObj: [
                
                    fontSize: '40px',
                    backgroundColor: 'red'
                ,
				
                    color: "green",
                    border: "2px solid yellow"
                
            ]
        
    )
</script>
</body>
</html>

2. 条件渲染


v-if , v-else-if , v-else的用法和后台if语句一样的效果。有条件判别,true显示标签,false移除标签内容。

注意:这三个指令必须连续使用,不然报错!

v-if的指令语句一般和template标签使用!


v-show的用法,如果是true显示当前标签内容,false不显示(display:none), 。


v-if和v-show的区别?

  • v-if是通过删节点来达到效果。而v-show是通过定义display来显示或隐藏的。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="root">
    <!--
       对于多个标签元素内容需要判断,我们可以使用div来操作,但是添加一个div影响结构,不推荐!
    -->
    <div v-if="n === 1">
      <h2>你好</h2>
      <h2>hello, world</h2>
      <h2>早上好</h2>
    </div>

    <hr>
    <!--
       最好的情况就是使用template标签来实现,它就不会多余的添加什么标签!
    -->
    <template v-if="n === 1">
      <h2>你好</h2>
      <h2>hello, world</h2>
      <h2>早上好</h2>
    </template>

  </div>
  <script>
    Vue.config.productionTip = false;
    new Vue(
      el:"#root",
      data:
        n:1
      
    )
  以上是关于Vue 学习总结笔记的主要内容,如果未能解决你的问题,请参考以下文章

Vue 学习总结笔记

Vue 学习总结笔记

Vue3 学习总结笔记 (十四)

Vue3 学习总结笔记 (十四)

Vue.js学习笔记总结1

Vue 学习总结笔记