一、Vue介绍
过去的十年,我们的网页变得更加动态化和强大,是因为有JAVAScript,我们已经把很多传统服务端代码放到浏览器中这样就产生了成千上万行的JavaScript代码,他们链接了各种各样的HTML和CSS文件,但缺乏正规的组织形式,这也是为什么越来越多的开发者使用JavaScript框架,例如:angular、REACT和VUE这样的框架。
这里我们就说一下vue,vue是一款有好的、多用途且高性能的JavaScript框架,它能够帮助你创建可维护性和课测试性更强的代码库,vue是渐进式的JavaScript框架,也就是说如果你已经有一个现成的服务端应用你可以将vue作为该应用的一部分嵌入其中,带来更加丰富的交互体验或者如果你希望将更多的业务逻辑放到前端来实现那么vue的核心库机器生态系统也可以满足你的各式需求。
与其他框架相同,vue允许你讲一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript以用来渲染网页中相应的地方。
二、使用VUE
1、引入vue.js文件
//下载后导入 <script src=vue.js></script>
2、通过下面的代码展示用,创建一个Vue的实例,然后通过应用的id嵌入根元素,将数据放入一个对象data中,并且将表达式传入div中{{msg}}(一定注意必须是双大括号)
//展示的HTML <div id="app"> {{ msg}} </div> //建立vue对象,固定格式 new Vue({ el: '#app', //通过id嵌入元素,el是元素ELEMENT的缩写 data: { msg: 'Holle Word!' } })
三 、指令
指令:带有前缀 v-,以表示它们是 Vue 提供的特殊特性,通过属性来操作元素。
1、v-model
v-model:实现了数据和视图的双向绑定 分成了3步: 1)把元素的值和数据相互绑定 2)当输入内容时,数据同步发生变化,视图 ---数据的驱动 3)当改变数据时,输入内容也会发生变化,数据-》视图的驱动 例子:利用vue中的v-model把input标签与data数据中msg属性进行双向绑定,msg可以有默认值也可以默认为空! <div id="app"> <input type="text" v-model="msg"> <h1>{{msg}}</h1> </div> <script> new Vue({ el:"#app", data:{ msg:"Holle Word !" } })
2、v-bind
// 绑定元素的属性来执行相应的操作,鼠标悬浮几秒后显示出绑定的提示信息 <div id="app"> <a v-on:href="url">我想去百度</a> </div> <script> new Vue({ el: "#app", //表示在当前这个元素内开始使用VUE data:{ url: "http://www.qq.com" }, }) </script>
3、v-text
// v-text 在元素中插入文本,比较单一 <div id="app"> <h1 v-text="msg">{{msg}}</h1> </div> <script> new Vue({ el:"#app", data:{ msg:"Holle Word !" } })
4、v-html
// v-html:在元素不中不仅可以插入文本,还可以插入标签,多样化 <div id="app"> <h1 v-html="hd"></h1> </div> <script> new Vue({ el:"#app", data:{ hd: "<input type='button' value='提交'>", str: "我要发财!" } })
5、v-if -- v-show -- v-on
// v-if: 根据表达式的真假值来动态插入和移除元素,下面的例子演示了我们不仅可以把数据绑定到 DOM 文本或特性,还可以绑定到 DOM 结构。此外,Vue 也提供一个强大的过渡效果系统,可以在 Vue 插入/更新/移除元素时自动应用过渡效果。
// v-show:根据表达式的真假值来隐藏和显示元素
<div id="app"> <p v-if="pick">我是刘德华</p> <p v-else>我是张学友</p> <p v-show="temp">我是赵本山</p> <p v-show="ok">你喜欢我吗?</p> </div> <script> var vm = new Vue({ el: "#app", //表示在当前这个元素内开始使用VUE data:{ pick: false, temp: true, ok: true } }) <!--不属于vue,单纯是js的语法,没过多少时间就会改变当前状态--> window.setInterval(function(){ vm.ok = !vm.ok; },1000)