Vuejs基础入门

举报
牛哄哄的柯南 发表于 2021/05/26 16:01:09 2021/05/26
【摘要】 Vuejs基础入门 Vue概述早期前后端分离模式MVVM框架Vue简介 Vue.js快速入门安装Vue环境Hello World程序 vue双向数据绑定文本渲染指令属性绑定指令绑定样式使用对象语法绑定样式使用三目运算绑定样式直接绑定内联样式 Vue概述 早期前后端分离模式 早期的前后端分离开发模式是这样的: <!DOCTYPE html>...

Vue概述

早期前后端分离模式

早期的前后端分离开发模式是这样的:

<!DOCTYPE html>
<html> <head> <meta charset="utf-8"> <title></title> <style> table { width: 600px; text-align: center; border-bottom: solid 2px #DDD; /* 合并边框 */ border-collapse: collapse; } td,th { border-bottom: solid 1px #DDD; height: 40px; } </style> </head> <body> <h3>用户信息</h3> <table> <tr> <th>用户编号</th> <th>用户姓名</th> <th>用户性别</th> <th>用户年龄</th> </tr> <tbody id="userBox"> <!-- 这里是动态内容 --> </tbody> </table> <script> let userArr = [{ userId: 1, userName: '张三', userSex: '男', userAge: 20 }, { userId: 2, userName: '李四', userSex: '女', userAge: 21 }, { userId: 3, userName: '王五', userSex: '男', userAge: 22 }] let userBox = document.getElementById('userBox'); let str = ''; for (let i = 0; i < userArr.length; i++) { str += '<tr>' + '<td>' + userArr[i].userId + '</td>' + '<td>' + userArr[i].userName + '</td>' + '<td>' + userArr[i].userSex + '</td>' + '<td>' + userArr[i].userAge + '</td>' + '</tr>'; } userBox.innerHTML = str; </script> </body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

以上开发模式的特点是:
1、必须直接操作DOM,动态改变DOM对象的内容与样式。
2、必须要进行大量的字符串拼接,才能拼接出动态内容,然后绑定到视图(html)上。
3、这种绑定方式是单向的。即:使用javascript将动态数据绑定到DOM上,但是用户操作DOM引起的变化,却不能反映到javascript的动态数据上。

MVVM框架

MVVM框架分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,V与M连接的桥梁,也可以看作为控制器)

1、M:模型层,主要负责业务数据相关。
2、V:视图层,顾名思义,负责视图相关,细分下来就是html+css层。3、VM:V与M沟通的桥梁,负责监听M或者V的修改,是实现MVVM双向绑定的要点。

MVVM支持双向绑定,意思就是当M层数据进行修改时,VM层会监测到变化,并且通知V层进行相应的修改,反之修改V层则会通知M层数据进行修改,以此也实现了视图与模型层的相互解耦。
在这里插入图片描述

Vue简介

Vue.js : 渐进式JavaScript 框架,它就是一个前端MVVM框架。 Vue.js的作者为Evan You(尤雨溪),任职于Google Creative Lab。 Vue的主要特点就和它官网所介绍的那样: 1.简洁 2.轻量 3.快速 4. 数据驱动 5.模块友好 6.组件化。

Vue.js快速入门

安装Vue环境

1、打开此链接:https://cdn.jsdelivr.net/npm/vue/dist/vue.js
     Ctrl + S 把vue.js文件保存到本地使用。

2、或者在body标签中加入下面这句话:

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

  
 
  • 1

Hello World程序

样例代码:

<!DOCTYPE html>
<html> <head> <meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title></title> </head> <body> <div id="app"> {{msg}} </div> <script> //定义全局变量vm let vm = new Vue({ el: '#app', data: { msg: 'Hello World!' } }); </script> </body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果:
在这里插入图片描述

vue双向数据绑定

样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div  id="app"> <input type="text"  v-model="msg" /></br> <span>{{msg}}</span> </div> <script> new Vue({ el: '#app', data: { msg: 'Keafmd' } });
		</script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

效果截图:
在这里插入图片描述

可以看到我们操作的view控件数据,直接影响到了我们的vm.data,并且又进一步影响到了页面,这就是Vue的双向数据绑定。整个过程的原理如下图所示:

在这里插入图片描述

文本渲染指令

Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。

在前面,我们一直使用的是字符串差值的形式渲染文本,但是除此方法之外,vue还提供了其他几种常见的文本渲染方式:

1. v-text:更新元素的innerText
2. v-html:更新元素的innerHTML

样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="app"> <div v-html="msg"></div> <div v-text="msg"></div>
		</div> <script> let vm = new Vue({ el: '#app', data: { msg:'<p>Keafmd!</p>' } });
		</script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

效果截图:
在这里插入图片描述

在Vue中,我们可以使用 { { } } 将数据插入到相应的模板中,这种方法是一种文本插值。 使用这种方法,如果网络慢或者JavaScript出错的话,会将 { { } } 直接渲染到页面中。 值得庆幸的是,Vue还提供了v-text和v-html来渲染文本或元素。这样就避免了将 { { } } 直接渲染到页面中。

属性绑定指令

如果想让html标签中的属性,也能应用Vue中的数据,那么就可以使用vue中常用的属性绑定指令:v-bind
样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="app"> <div v-bind:title="msg">DOM元素属性绑定</div> <!-- v-bind的简写形式 --> <div :title="msg">DOM元素属性绑定</div>
		</div> <script> let vm = new Vue({ el: '#app', data: { msg:'Hello World!' } });
		</script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

效果截图:
在这里插入图片描述

上面展示的是v-bind的最基本的使用,第一种是完整语法,第二种是缩写方式。
除了将元素的title属性和vue实例的相关字段进行绑定外,还能将其他的属性字段进行绑定,最常见的是对于样式的绑定,即class和style属性。

绑定样式

使用v-bind指令绑定class属性,就可以动态绑定元素样式了。
样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> <style> .one{ color: red; } .two{ color: blue; } </style>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body> <div id="app"> <div :class="className">DOM元素的样式绑定</div> </div> <script> let vm = new Vue({ el: '#app', data: { className:'one' } }); </script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

效果截图:
在这里插入图片描述

通过:className:‘one’ 来绑定one class属性,使颜色修改为red

使用对象语法绑定样式

我们可以给v-bind:class 一个对象,也可以直接绑定数据里的一个对象,以动态地切换class。

样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<style> .one{ color: red; } .two{ font-size: 48px; }
		</style>
	</head>
	<body>
		<div id="app"> <div :class="{one:oneActive,two:twoActive}">DOM元素的样式绑定1</div> <div :class="{one:false,two:true}">DOM元素的样式绑定2</div>
		</div> <script> let vm = new Vue({ el: '#app', data: { oneActive:true, twoActive:false } });
		</script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

效果截图:
在这里插入图片描述

我们可以通过绑定数据里的一个对象来实现切换,也可以直接写true或者false来控制。

使用三目运算绑定样式

可以使用三目运算符,来动态绑定样式。

样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<style> .one{ color: red; }
		</style>
		<title></title>
	</head>
	<body> <div id="app"> <div :class="userId==1 ? className : '' ">DOM元素的样式绑定</div> <div :class="userId==2 ? className : '' ">DOM元素的样式绑定</div> </div> <script> let vm = new Vue({ el: '#app', data: { userId:1, className:'one' } }); </script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

效果截图:
在这里插入图片描述

直接绑定内联样式

也可以直接绑定内联样式。

样例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app"> <div style="color:red;font-size: 50px;">DOM元素的样式绑定1</div> <div :style="{color:colorValue,fontSize:fontSizeValue}">DOM元素的样式绑定2</div> <div :style="stylelist">DOM元素的样式绑定3</div>
		</div> <script> let vm = new Vue({ el: '#app', data: { colorValue: 'green', fontSizeValue: '60px', stylelist: 'color:red' } });
		</script>
	</body>
</html>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

效果截图:
在这里插入图片描述

注意:绑定style属性后,样式的书写要遵循javaScript规范。 也就是将 xxx-xxx 改写成驼峰命名方式 xxxXxxx

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端的话,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述
加油!

共同努力!

Keafmd

文章来源: keafmd.blog.csdn.net,作者:牛哄哄的柯南,版权归原作者所有,如需转载,请联系作者。

原文链接:keafmd.blog.csdn.net/article/details/110431470

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。