1. vue.js的快速入门使用1.1 vue.js库的下载1.2 vue.js库的基本使用1.3 vue.js的M-V-VM思想1.4 显示数据2. 常用指令2.1 操作属性2.2 事件绑定例如:完成商城的商品增加减少数量2.3 操作样式2.3.1 控制标签class类名2.3.2 控制标签style样式2.3.2 实例-vue版本选项卡2.4 条件渲染指令2.4.1 v-if2.4.2 v-else2.4.3 v-else-if2.4.4 v-show2.5 列表渲染指令3. Vue对象提供的属性功能3.1 过滤器3.1.1 使用Vue.filter()进行全局定义3.1.2 在vue对象中通过filters属性来定义3.4 计算和侦听属性3.4.1 计算属性3.4.2 监听属性3.5 vue对象的生命周期3.2 阻止事件冒泡和刷新页面3.3 综合案例-todolist

1. vue.js的快速入门使用

1.1 vue.js库的下载

vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的。

另外几个常见的工具库:react.js /angular.js

官方网站:

中文:https://cn.vuejs.org/

英文:https://vuejs.org/

官方文档:https://cn.vuejs.org/v2/guide/

vue.js目前有1.x、2.x和3.x 版本,我们学习2.x版本的。

1.2 vue.js库的基本使用

在github下载:https://github.com/vuejs/vue/releases

在官网下载地址: https://cn.vuejs.org/v2/guide/installation.html

vue的引入类似于jQuery,开发中可以使用开发版本vue.js,产品上线要换成vue.min.js。

下图是github网站下载的vue.js目录

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><script src="js/vue.min.js"></script><script>window.onload = function(){// vue.js的代码开始于一个Vue对象。所以每次操作数据都要声明Vue对象开始。var vm = new Vue({el:'#app',   // 设置当前vue对象要控制的标签范围。data:{  // data是将要展示到HTML标签元素中的数据。message: 'hello world!',}});}</script>
</head>
<body>
<div id="app"><!-- {{ message }} 表示把vue对象里面data属性中的对应数据输出到页面中 --><!-- 在双标签中显示数据要通过{{  }}来完成 --><p>{{ message }}</p>
</div>
</body>
</html>

代码执行效果:

总结:

1. vue的使用要从创建Vue对象开始var vm = new Vue();2. 创建vue对象的时候,需要传递参数,是json对象,json对象对象必须至少有两个属性成员var vm = new Vue({el:"#app",data: {数据变量:"变量值",数据变量:"变量值",数据变量:"变量值",},});el:设置vue可以操作的html内容范围,值就是css的id选择器。data: 保存vue.js中要显示到html页面的数据。3. vue.js要控制器的内容外围,必须先通过id来设置。<div id="app"><h1>{{message}}</h1><p>{{message}}</p></div>

1.3 vue.js的M-V-VM思想

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式。

Model 指代的就是vue对象的data属性里面的数据。这里的数据要显示到页面中。

View 指代的就是vue中数据要显示的HTML页面,在vue中,也称之为“视图模板” 。

ViewModel 指代的是vue.js中我们编写代码时的vm对象了,它是vue.js的核心,负责连接 View 和 Model,保证视图和数据的一致性,所以前面代码中,data里面的数据被显示中p标签中就是vm对象自动完成的。

编写代码,让我们更加清晰的了解MVVM:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.min.js"></script><script>window.onload = function(){// 创建vm对象var vm = new Vue({el: "#app",data: {name:"大标题",age:16,},})}</script>
</head>
<body><div id="app"><!-- 在双标签中显示数据要通过{{  }}来完成 --><h1>{{name}}</h1><p>{{age}}</p><!-- 在表单输入框中显示数据要使用v-model来完成,模板语法的时候,我们会详细学习 --><input type="text" v-model="name"></div>
</body>
</html>

代码执行效果:

在浏览器中可以在 console.log通过 vm对象可以直接访问el和data属性,甚至可以访问data里面的数据

console.log(vm.$el)     # #box  vm对象可以控制的范围
console.log(vm.$data);  # vm对象要显示到页面中的数据
console.log(vm.message);# 这个 message就是data里面声明的数据,也可以使用 vm.变量名显示其他数据,message只是举例.

总结:

1. 如果要输出data里面的数据作为普通标签的内容,需要使用{{  }}用法:vue对象的data属性:data:{name:"小明",}标签元素:<h1>{{ name }}</h1>
2. 如果要输出data里面的数据作为表单元素的值,需要使用vue.js提供的元素属性v-model用法:vue对象的data属性:data:{name:"小明",}表单元素:<input v-model="name">使用v-model把data里面的数据显示到表单元素以后,一旦用户修改表单元素的值,则data里面对应数据的值也会随之发生改变,甚至,页面中凡是使用了这个数据都会发生变化。

1.4 显示数据

  1. 在双标签中显示数据要通过{{ }}来完成数据显示

  2. 在表单输入框中显示数据要使用v-model来完成数据显示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.min.js"></script><script>window.onload = function(){var vm = new Vue({el:"#app",data:{str1: "hello",num: 20,url1: "http://www.baidu.com",url2: "http://www.taobao.com"}})        }</script>
</head>
<body><p>{{ str1 }}</p><p>{{ str1.split("").reverse().join("") }}</p><p>num和num2中比较大的数是:{{ num>num2? num:num2 }}</p><input type="text" v-model="name">
</body>
</html>

双花括号仅用输出文本内容,如果要输出html代码,则不能使用这个.要使用v-html来输出.

v-html必须在html标签里面作为属性写出来.

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.js"></script>
</head>
<body><div class="app"><h1>{{title}}</h1><h3>{{url1}}</h3>{{img}}<br><span v-html="img"></span></div><script>let vm = new Vue({el:".app",data:{title:"我的vue",url1:"我的收获地址",img:'<img src="data:images/shendan.png">',}})</script>
</body>
</html>

总结:

1. 可以在普通标签中使用{{  }} 或者 v-html 来输出data里面的数据<h1>{{message}}</h1>2. 可以在表单标签中使用v-model属性来输出data里面的数据,同时还可以修改data里面的数据<input type="text" v-model="username">

在输出内容到普通标签的使用{{ }}还支持js代码。

    <h1>{{str1.split("").reverse().join("")}}</h1><!-- 3.2 支持js的运算符--><h1>{{num1+3}}</h1><!-- 3.3 js还有一种运算符,三元运算符,类似于python里面的三元表达式三元运算符的语法:判断条件 ? 条件为true : 条件为false的结果python 三元表达式[三目运算符]的语法:a if 条件 else b--><h1>num1和num2之间进行比较,最大值:{{ num2>num1?num2:num1 }}</h1>

2. 常用指令

指令 (Directives) 是带有“v-”前缀的特殊属性。每一个指令在vue中都有固定的作用。

在vue中,提供了很多指令,常用的有:v-if、v-model、v-for等等。

指令会在vm对象的data属性的数据发生变化时,会同时改变元素中的其控制的内容或属性。

因为vue的历史版本原因,所以有一部分指令都有两种写法:

vue1.x写法             vue2.x的写法
v-html         ---->   {{  }}   # vue2.x 也支持v-html
v-bind:属性名   ---->   :属性
v-on:事件名     ---->   @事件名

2.1 操作属性

格式:

<标签名 :标签属性="data属性"></标签名>
<p :title="str1">{{ str1 }}</p> <!-- 也可以使用v-html显示双标签的内容,{{  }} 是简写 -->
<a :href="url2">淘宝</a>
<a v-bind:href="url1">百度</a>  <!-- v-bind是vue1.x版本的写法 -->

显示wifi密码效果:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.js"></script>
</head>
<body><div id="index"><img :src="url" :alt="title"><br><input :type="type" placeholder="请输入wifi密码"> <button @click="type='text'">显示密码</button>
</div><script>let vm = new Vue({el:"#index",data:{url:"https://www.luffycity.com/static/img/head-logo.a7cedf3.svg",title:"路飞学成",type:"password"}})
</script>
</body>
</html>

2.2 事件绑定

有两种事件操作的写法,@事件名 和 v-on:事件名

<button v-on:click="num++">按钮</button>   <!-- v-on 是vue1.x版本的写法 -->
<button @click="num+=5">按钮2</button>

总结:

1. 使用@事件名来进行事件的绑定语法:<h1 @click="num++">{{num}}</h1>2. 绑定的事件的事件名,全部都是js的事件名:@submit   --->  onsubmit@focus    --->  onfocus....

例如:完成商城的商品增加减少数量

步骤:

  1. 给vue对象添加操作数据的方法

  2. 在标签中使用指令调用操作数据的方法

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.js"></script>
</head>
<body><div id="box"><button @click="++num">+</button><input type="text" v-model="num"><button @click="sub">-</button></div><script>let vm = new Vue({el:"#box",data:{num:0,},methods:{sub(){if(this.num<=1){this.num=0;}else{this.num--;}}}})</script>
</body>
</html><!--#box>(button+input+button) tab键-->

2.3 操作样式

2.3.1 控制标签class类名

格式:<h1 :class="值">元素</h1>  值可以是对象、对象名、数组
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.js"></script><style>.box1{color: red;border: 1px solid #000;}.box2{background-color: orange;font-size: 32px;}</style>
</head>
<body><div id="box"><!--- 添加class类名,值是一个对象{class类1:布尔值变量1,class类2:布尔值变量2,}--><p :class="{box1:myclass1}">一个段落</p><p @click="myclass3=!myclass3" :class="{box1:myclass2,box2:myclass3}">一个段落</p></div><script>let vm1=new Vue({el:"#box",data:{myclass1:false, // 布尔值变量如果是false,则不会添加对象的属性名作为样式myclass2:true,  // 布尔值变量如果是true,则不会添加对象的属性名作为样式myclass3:false,},})</script><!-- 上面的代码可以:class的值保存到data里面的一个变量,然后使用该变量作为:class的值 --><style>.box4{background-color: red;}.box5{color: green;}</style><div id="app"><button @click="mycls.box4=!mycls.box4">改变背景</button><button @click="mycls.box5=!mycls.box5">改变字体颜色</button><p :class="mycls">第二个段落</p></div><script>let vm2 = new Vue({el:"#app",data:{mycls:{box4:false,box5:true},}})</script><!-- 批量给元素增加多个class样式类 --><style>.box6{background-color: red;}.box7{color: green;}.box8{border: 1px solid yellow;}</style><div id="app2"><p :class="[mycls1,mycls2]">第三个段落</p></div><script>let vm3 = new Vue({el:"#app2",data:{mycls1:{box6:true,box7:true,},mycls2:{box8:true,}}})</script>
</body>
</html>

代码执行效果:

总结:

1. 给元素绑定class类名,最常用的就是第二种。vue对象的data数据:data:{myObj:{complete:true,uncomplete:false,}}html元素:    <div class="box" :class="myObj">2222</div>最终浏览器效果:<div class="box complete">2222</div>

2.3.2 控制标签style样式

格式1:值是json对象,对象写在元素的:style属性中标签元素:<div :style="{color: activeColor, fontSize: fontSize + 'px' }"></div>data数据如下:data: {activeColor: 'red',fontSize: 30}
格式2:值是对象变量名,对象在data中进行声明标签元素:<div v-bind:style="styleObject"></div>data数据如下:data: {styleObject: {color: 'red',fontSize: '13px'}}格式3:值是数组标签元素:<div v-bind:style="[style1, style2]"></div>data数据如下:data: {style1:{color:"red"},style2:{background:"yellow",fontSize: "21px"}}

2.3.2 实例-vue版本选项卡

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#card{width: 500px;height: 350px;}.title{height:50px;}.title span{width: 100px;height: 50px;background-color:#ccc;display: inline-block;line-height: 50px; /* 设置行和当前元素的高度相等,就可以让文本内容上下居中 */text-align:center;}.content .list{width: 500px;height: 300px;background-color: yellow;display: none;}.content .active{display: block;}.title .current{background-color: yellow;}</style><script src="js/vue.js"></script>
</head>
<body><div id="card"><div class="title"><span @click="num=0" :class="num==0?'current':''">国内新闻</span><span @click="num=1" :class="num==1?'current':''">国际新闻</span><span @click="num=2" :class="num==2?'current':''">银河新闻</span><!--<span>{{num}}</span>--></div><div class="content"><div class="list" :class="num==0?'active':''">国内新闻列表</div><div class="list" :class="num==1?'active':''">国际新闻列表</div><div class="list" :class="num==2?'active':''">银河新闻列表</div></div></div><script>// 思路:// 当用户点击标题栏的按钮[span]时,显示对应索引下标的内容块[.list]// 代码实现:var card = new Vue({el:"#card",data:{num:0,},});</script></body>
</html>

代码运行效果:

1. vue.js的快速入门使用相关推荐

  1. 2017 Vue.js 2快速入门指南

    注意,据部分读者反映本文水多,怕湿身者勿进.后续推荐详解 Vue & Vuex 实践 2017 Vue.js 2快速入门指南翻译自Vue.js 2 Quickstart Tutorial 20 ...

  2. vue.js的快速入门使用

    1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的. 另外几个常见的工具库:react.js /angula ...

  3. Vue (一) --- vue.js的快速入门使用

    =-----------------------------------把现在的工作做好,才能幻想将来的事情,专注于眼前的事情,对于尚未发生的事情而陷入无休止的忧虑之中,对事情毫无帮助,反而为自己凭添 ...

  4. JavaWeb『Vue.js』快速入门

    Vue快速入门 第一节 准备Vue.js环境 1.开发中的最佳实践 2.Vue框架的js文件获取 3.本地创建vue.js文件 4.创建HTML文档并引入vue.js 第二节 Vue.js基本语法:声 ...

  5. Vue—上手实践—快速入门

    原文地址:Vue快速入门 目录 3.快速入门 3.1.创建工程 3.2.安装vue 3.2.1.下载安装 3.2.2.使用CDN 3.2.3.推荐npm安装 3.3.vue入门案例 3.3.1.HTM ...

  6. Vue.js 框架从入门到精通,只需要它!

    点击蓝字 关注我们 你还在一行一行低效代码吗?你还在不停地操作 DOM 吗?你的代码还会频繁出现 CSS.Javascript 配置文件冲突吗? Vue3 框架快速解决你的代码低效问题! 01 Vue ...

  7. Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定

    Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...

  8. Vue.js简介和入门使用

    vuejs 简介 Vue.js (vuejs.org) 渐进式 JavaScript 框架 vuejs 是基于MVVM 思想的框架 vuejs 是以数据驱动为主的框架 vuejs 是以组件化进行开发的 ...

  9. 什么是Vue.js?适合入门小白(笔记1)

    Vue 是什么? Vue:渐进式javaScript框架. 什么是渐进式? 渐进式框架的大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分. 如:你可以根据自己需求增加对于的部分 ...

最新文章

  1. cv2.setNumThreads
  2. IOSday05 UIScrollView使用
  3. boost::function_types::has_property_tag用法的测试程序
  4. IOS之Foundation之探究学习Swift实用基础整理一
  5. L1-017 到底有多二 (15 分)
  6. LVS——NAT网络地址转换模式
  7. 转:神经网络编程入门
  8. matlab 矩阵线性规划,matlab线性规划-线性规划,matlab
  9. 产品沉思录 V3.0 试读
  10. 键盘打开计算机右键菜单,电脑Win10系统开始右键菜单的应用及修复方法
  11. android adb命令安装apk的步骤
  12. TEXMACS在ubuntu下的使用
  13. CodingTrip - 携程编程大赛-第二题-携程员工运动会场地问题
  14. 职场新人注意事项:抖包袱可以,抖机灵不要
  15. 读卡器插电脑不显示盘符
  16. uml-----什么是UML
  17. 微信小程序使用字体图标的方法iconfont
  18. IP报文在阿里云上的神奇之旅:同地域内云上通信
  19. java 剪切音乐_怎么剪切一段音乐其中的片段
  20. java提供对多线程同步语言级的支持_赞同科技笔试题11

热门文章

  1. 程序员的修仙之路-筑基篇
  2. 广州欧米区块链科技×浙江墨客奇迹区块链科技丨达成战略合作共识
  3. js事件案例——小人快跑JavaScript
  4. Coffee and Coursework
  5. python能不能互动执行_细思恐极,插上U盘就开始执行Python代码
  6. 艾永亮:产品做完后,第一步就是马上推广吗?
  7. 兼容IE的excel下载
  8. 简述 npm 发包流程
  9. 2018沈阳集训day1
  10. 喜欢士兵突击,我们都丢掉了,许三多没有丢