vue学习总结笔记(代码片段)

IT_Holmes IT_Holmes     2023-03-09     399

关键词:

文章目录

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学习总结笔记(代码片段)

文章目录1.Vuex插件1.1什么是Vuex?1.2为什么要用Vuex?1.3Vuex的原理图2.搭建Vuex环境2.1安装Vuex的注意事项2.2搭建Vuex环境2.3Vue的注意事项2.4Vuex的使用大体流程3.Vuex实现求和案例4.Vuex的开发者工具5.Vuex中的getters配置项5.1getters介... 查看详情

vue3学习总结笔记(十三)(代码片段)

文章目录1.Vue3简介2.创建Vue3项目工程2.1使用Vue-cli创建2.2使用Vite创建Vue3工程3.Vue3之分析工程结构3.Vue3之安装开发者工具4.Vue3之setup5.Vue3之ref函数5.1ref函数处理基本数据类型5.2ref函数处理对象类型6.Vue3之reactive函数7.Vue3之与vue2进行... 查看详情

vue3学习总结笔记(十三)(代码片段)

文章目录1.Vue3简介2.创建Vue3项目工程2.1使用Vue-cli创建2.2使用Vite创建Vue3工程3.Vue3之分析工程结构3.Vue3之安装开发者工具4.Vue3之setup5.Vue3之ref函数5.1ref函数处理基本数据类型5.2ref函数处理对象类型6.Vue3之reactive函数7.Vue3之与vue2进行... 查看详情

学习笔记之vuex总结(vue状态管理)(代码片段)

一、前言接触Vuex之前我们组件间共享数据的方式父向子传值:v-bind属性绑定子向父传值:v-on事件绑定兄弟组件之间共享数据:EventBus1)$emit发送数据的那个组件2)$on接收数据的那个组件上面这三种共享数据方式,只... 查看详情

vue学习总结笔记(代码片段)

文章目录1.Vue的绑定class样式1.1Vue的三种绑定class的样式方式1.2Vue的class绑定样式改变数值2.条件渲染3.Vue的列表渲染4.key的作用和原理4.1index作为key的效果和问题4.2id作为key的效果(最佳)3.3面试题:react,vue中的key有什么作用&... 查看详情

vue学习总结笔记(代码片段)

文章目录1.缓存路由组件2.路由组件对应的两个特别的钩子函数3.路由守卫3.1全局前置路由守卫3.2this.$route的meta3.3全局后置路由守卫4.独享路由守卫5.组件内路由守卫6.hash模式和history模式6.1什么是hash?6.2hash模式和history模式6.3... 查看详情

vue学习总结笔记(代码片段)

文章目录1.使用Vue写一个表单数据2.Vue过滤器2.1moment.js和day.js的库2.2Vue的过滤器的使用3.v-text指令4.v-html指令(谨慎使用!!!)4.1cookie工作原理4.2v-html指令5.v-clock指令6.v-once指令7.v-pre指令8.Vue的自定义指令8.1设置自... 查看详情

vue学习总结笔记(代码片段)

文章目录1.render函数1.1为什么正常情况下的写法不能生效?1.2使用完整版的vue.js来解决没有模板解析器的问题1.3使用render函数来解决没有模板解析器的问题2.修改VueCli脚手架的默认配置3.ref属性(被用来给元素或子组件注册引用... 查看详情

hbase学习笔记问题总结(代码片段)

遇到问题原因,修改了network2017-04-0416:45:54,556ERROR[main]master.HMasterCommandLine:Masterexitingjava.lang.RuntimeException:FailedconstructionofMaster:classorg.apache.hadoop.hbase.master.HMasterCommandLine$Lo 查看详情

vue第六天学习笔记之vuecli3详解(代码片段)

目录 1.VueCLI详解1.1Runtime-Compiler和Runtime-only的区别2.VueCLI33.箭头函数3.1箭头函数的基本使用3.2箭头函数参数和返回值3.3箭头函数中的this的使用4.vue-router详解4.1认识路由4.2前端路由的规则4.3vue-router基础1.VueCLI详解1.1Runtime-Compiler和Run... 查看详情

深度学习笔记:归一化问题总结(代码片段)

理论系列:    深度学习笔记(一):卷积层+激活函数+池化层+全连接层    深度学习笔记(二):激活函数的前世今生    深度学习笔记(三):BatchNorm(BN࿰... 查看详情

vue笔记大融合总结(代码片段)

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0 查看详情

springcloud学习笔记总结(代码片段)

文章目录1.SpringCloudBus之消息总线介绍2.SpringCloudBus之搭建RabbitMQ3.SpringCloudBus之动态刷新全局广播的设计思想和选型4.SpringCloudBus之动态刷新全局广播配置实现5.SpringCloudStream之消息驱动介绍6.SpringCloudStream之设计思想7.SpringCloudStream之... 查看详情

springcloud学习笔记总结(代码片段)

文章目录1.SpringCloudBus之消息总线介绍2.SpringCloudBus之搭建RabbitMQ3.SpringCloudBus之动态刷新全局广播的设计思想和选型4.SpringCloudBus之动态刷新全局广播配置实现5.SpringCloudStream之消息驱动介绍6.SpringCloudStream之设计思想7.SpringCloudStream之... 查看详情

react学习笔记总结(代码片段)

针对React拓展相关的学习。文章目录一.React项目打包二.React扩展之setState两种写法三.React扩展之lazyLoad(懒加载)四、React的stateHook五、React的EffectHook六、React的RefHook七、React的Fragment八、React的Context九、React的PureComponent1.Component组件... 查看详情

尚硅谷vue系列教程学习笔记(代码片段)

尚硅谷Vue系列教程学习笔记(9)参考课程:《尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通》参考链接:https://www.bilibili.com/video/BV1Zy4y1K7SH?vd_source=4f4d3466cdc2c5a2539504632c862ce7笔记上传说明:上述课程中共有... 查看详情

尚硅谷vue系列教程学习笔记(10)(代码片段)

尚硅谷Vue系列教程学习笔记(10)参考课程:《尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通》参考链接:https://www.bilibili.com/video/BV1Zy4y1K7SH?vd_source=4f4d3466cdc2c5a2539504632c862ce7笔记上传说明:上述课程中共... 查看详情

springcloud学习笔记总结(代码片段)

文章目录1.zuul与Gateway2.Gateway之简介3.Gateway之核心概念+架构流程4.Gateway之搭建Gateway服务器+测试5.Gateway之路由的两种配置方式6.Gateway之配置动态路由7.Gateway之Predicate分类8.Gateway之Filter(GatewayFilter)9.SpringCloudConfig之分布式配置... 查看详情