Vue.js—快速⼊门及实现图书管理系统前⾔
今天我们主要⼀起来学习⼀个新框架的使⽤——Vue.js,之前我们也讲过AngularJS是如何使⽤的,⽽今天要讲的Vue.js的语法和AngularJS很相似,因为 AngularJS 是 Vue 早期开发的灵感来源。然⽽,AngularJS 中存在的许多问题,在 Vue 中已经得到解决。AngularJS 使⽤双向绑定,Vue 在不同组件间强制使⽤单向数据流,这使应⽤中的数据流更加清晰易懂。
在实现图书馆系统之前,我们先学习⼀下Vue.js的⼀些基础语法的使⽤。
1 第⼀个Vue实例
每个 Vue 应⽤都是通过Vue函数创建⼀个新的 Vue 实例开始的,当创建⼀个 Vue 实例时,你可以传⼊⼀个选项对象。
⼀个 Vue 应⽤由⼀个通过new Vue创建的根 Vue 实例,以及可选的嵌套的、可复⽤的组件树组成。
Vue.js使⽤{{ }}绑定表达式,⽤于将表达式的内容输出到页⾯中。表达式可以是⽂字,运算符,变量等,也可以在表达式中进⾏运算输出结果
1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="UTF-8">
5<title></title>
6</head>
7<body>
8<div id="app">
9 {{message}}
10</div>
11
12<script type="text/javascript" src="js/vue.js"></script>
13<script type="text/javascript">
14//声明式渲染
15var app = new Vue({ //创建Vue对象
16 el:"#app", //把当前Vue对象挂载到div标签上,#app是ID选择器
17 data:{
18 message:"Hello Vue!",//message是⾃定义的数据
19 }
20
21 });
22</script>
23</body>
24</html>
在创建Vue实例时,需要传⼊⼀个选项对象,选项对象可以包含数据、挂载元素、⽅法、模⽣命周期钩⼦等等。
在这个⽰例中,选项对象的el属性指向View,el: '#app'表⽰该Vue实例将挂载到<div id="app">...</div>这个元素;
data属性指向Model,data: message表⽰我们的Model是message对象。
Vue.js有多种数据绑定的语法,最基础的形式是⽂本插值,使⽤⼀对⼤括号语法,在运⾏时{{ message }}会被数据对象的message属性替换,所以页⾯上会输出"Hello World!"。
2 双向绑定实例
⾸先我们先解释⼀下什么是双向绑定, Vue框架很核⼼的功能就是双向的数据绑定。双向是指:HTML标签数据绑定到Vue对象,另外反⽅向数据也是绑定的。MVVM模式本⾝是实现了双向绑定的,
在Vue.js中可以使⽤v-model指令在表单元素上创建双向数据绑定。将message绑定到⽂本框,当更改⽂本框的值时,{{ message }}中的内容也会被更新。反之,如果改变message的值,⽂本框的值也会被更新。反过来,如果改变message的值,⽂本框的值也会被更新,我们可以在Chrome控制台进⾏尝试。
下⾯的栗⼦是在表单控件元素(input等)上创建双向数据绑定(数据源);跟Angular中ng-model⽤法⼀样。
1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="UTF-8">
5<title></title>
6</head>
7<body>
8<div id="app">
9 {{message}}
10
11
13<input v-model="message"/>
14</div>
15</body>
16<script type="text/javascript" src="js/vue.js"></script>
17<script type="text/javascript">
18//声明式渲染
19var app = new Vue({
20 el:"#app",
21 data:{
22 message:"Hello Vue",
23 }
24
25 });
26</script>
27</html>
3 Vue.js的常⽤指令
上⾯⽤到的v-model是Vue.js常⽤的⼀个指令,那什么是指令呢?
Vue.js的指令是以v-开头的,它们作⽤于HTML元素,指令提供了⼀些特殊的特性,将指令绑定在元素上时,指令会为绑定的⽬标元素添加⼀些特殊的⾏为,我们可以将指令看作特殊的HTML特性。
Vue.js提供了⼀些常⽤的内置指令,接下来就给⼤家介绍⼏个Vue中的常⽤指令:
1、v-if指令
2、v-else指令
3、v-show指令
4、v-for指令
5、v-on指令
6、v-bind 指令
3.13.2
v-if 指令
v-if 是条件渲染指令,它根据表达式的真假来删除和插⼊元素,这个例⼦演⽰了我们不仅可以绑定 DOM ⽂本到数据,也可以绑定 DOM 结构到数据。
1 <!DOCTYPE html >
2 <html >
3 <head >
4 <meta charset ="UTF-8">
5 <title ></title >
6 </head >
7 <body >
8 <div id ="app">
9 <h1>Hello, Vue.js!</h1>
10 <h1 v-if ="yes">Yes </h1>
11 <h1 v-if ="no">No </h1>
12 <h1 v-if ="age >= 12">Age: {{ age }}</h1>
13 </div >
14 </body >
15 <script src ="js/vue.js"></script >
16 <script >17
18 var vm = new
Vue({19 el: '#app',
20 data: {
21 yes: true ,
22 no: false ,
23 age: 20,
24 }
25 })
26 </script >
27 </html >
v-else 指令
可以⽤ v-else 指令给 v-if 添加⼀个 "else" 块,条件都不符合时渲染。v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后⾯,否则它将不会被识别。
1 <!DOCTYPE html >
2 <html >
3 <head >
4 <meta charset ="UTF-8">
5 <title ></title >
6 </head >
7 <body >
8 <div id ="app">
3.3 9 <div v-if ="num>90">
10 {{score1}}
11 </div >
12 <div v-else >
13 {{bananer}}
14 </div >
15 </div >
16
17 <script src ="cdn.bootcss/vue/2.2.2/vue.min.js"></script >18 <script type ="text/javascript">
19 var app = new Vue({
20 el: "#app",
21 data:{
22 num:98,
23 score1:"恭喜你是优秀哦!",
24 score2:"需要继续努⼒哦!"
25 }
26 });
27 </script >
28 </body >
29 </html >
v-show 指令
v-show 也是条件渲染指令,和v-if 指令不同的是,使⽤v-show 指令的元素始终会被渲染到HTML ,它
只是简单地为元素设置CSS 的style 属性。值得我们注意的是,v-show 不⽀持 <template> 元素,也不⽀持 v-else 。
1 <!DOCTYPE html >
2 <html >
3 <head >
4 <meta charset ="UTF-8">
5 <title >综合实例</title >
6 </head >
7 <body >
8 <div id ="app">
9 <h1 v-show ="teng">这是个真理!</h1>
10 <template v-show ="false">
11 <div >我好漂亮!</div >
12 <div >我⾮常漂亮!</div >
13 <div >我特别漂亮!</div >
14 </template >
15 </div >
16 </body >
17
<script src ="cdn.bootcss/vue/2.2.2/vue.min.js"></script >
18 <script type ="text/javascript">
19 var vm=new Vue({
20 el:'#app',
21 data:{
22 teng:true
23 }
24 })
25 </script >
26 </html >
3.43.5
angular和angularjs
v-for 指令
循环使⽤ v-for 指令,v-for 指令可以绑定数组的数据来渲染⼀个项⽬列表。
1 <!DOCTYPE html >
2 <html >
3 <head >
4 <meta charset ="UTF-8">
5 <title ></title >
6 </head >
7 <body >
8 <div id ="app">
9 <ol >
10 <li v-for ="teng in shuai">
11 {{ teng.name }}
12 </li >
13 </ol >
14 </div >
15
16 <script src ="cdn.bootcss/vue/2.2.2/vue.min.js"></script >17 <script type ="text/javascript">
18 var app = new Vue({
19
el: "#app",
20 data:{
21 shuai: [
22 { name: '帅!' },
23 { name: '真帅!' },
24 { name: '特别帅!' }
25 ]
26 }
27 });
28 </script >
29 </body >
30 </html >
v-on 指令
事件监听可以使⽤ v-on 指令。
通常情况下,我们需要使⽤⼀个⽅法来调⽤ JavaScript ⽅法。v-on 可以接收⼀个定义的⽅法来调⽤。除了直接绑定到⼀个⽅法,也可以⽤内联 JavaScript 语句.
1 <!DOCTYPE html >
2 <html >
3 <head >
4 <meta charset ="UTF-8">
5 <title ></title >
6 </head >
7 <body >
8 <div id ="app">
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论