vue.js
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。是用于构建交互式的 Web界面的库。
安装
- 下载安装
下载地址 - 使用CDN
BootCDN(国内) : https://cdn.bootcss.com/vue/2.2.2/vue.min.js
unpkg:https://unpkg.com/vue/dist/vue.js
cdnjs : https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.8/vue.min.js
CDN国内并不稳定,推荐下载到本地。
引入方式
script标签引入
< script src = “本地地址或者CDN地址” > script >
实例化
Vue应用需要通过实例化Vue对象实现
语法:
var vm = new Vue({
// 选项
})
常用vue选项
el:选择器
data 用于定义属性。
methods 用于定义函数,可以通过 return 来返回函数值。
computed:计算属性
watch:监听属性
实例:
var vm = new Vue({
el: '#vue_det',
data: {
site: "玄离",
url: "mxuanli.cn",
},
methods: {
details: function() {
return "玄离的博客;
}
}
})
模板语法
模板语法指的是如何将数据放入html中,Vue.js使用了基于 HTML的模板语法,允许开发者声明式地将DOM绑定至底层 Vue 实例的数据。所有 Vue.js的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。
插入值
数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
site : {{site}}
实例:
site : {{site}}
url : {{url}}
{{ details() }}
渲染后的结果:
site : 玄离
url : mxuanli.cn
玄离的博客
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其data对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。还可以在Vue实例中定义方法,通过方法来改变实例中data对象中的数据,数据改变了,视图中的数据也改变。
指令
指令 (Directives) 是带有“v-”前缀的特殊属性。
指令可以将自己与一个 Vue 实例上的属性绑定,也可以与一个实例作用域中的表达式绑定。当属性或表达式的值发生改变时,指令的 update() 方法会在下一个事件循环中被异步调用,将其产生的连带影响,响应式地作用于DOM。
常见的指令有v-bind、v-if、v-on、v-for。
v-bind
html标签属性不能使用双大括号形式绑定,只能使用v-bind指令。
v-bind 可以用来绑定 HTML 标签样式。
site : 玄离
渲染后的结果:
site : 玄离
v-bind的高级用法
vue指令的预期值,除了像上边那样绑定一个字符串类型之外,也可以支持单一表达式。
- vue指令的预期值:如
v-bind:id="siteid"
中,v-bind
是指令,: 后面的id
是参数,而siteid
则在官方文档中被称为“预期值”。
执行运算
site : 玄离
渲染后的结果:
site : 玄离
函数
site : 玄离
渲染后结果:
site : 玄离
数组类型
site : 玄离
渲染结果:
site : 玄离
字典类型一
site : 玄离
渲染结果:
site : 玄离
字典类型二
site : 玄离
渲染结果:
site : 玄离
v-on 事件监听
绑定事件监听
实例:
当点击按钮后,发生了click事件,便会调用onclick方法。
简写
v-bind和v-on事件这两个指令会经常用,所以有简写方式
v-bind可以简写为:
site : 玄离
v-on可以简写为:
v-if 条件判断
符合条件插入块中内容
是否显示这句话
v-if后表达式值为True插入h1标签,为False不插入。
运行结果:
v-else 和 v-else-if
v-if可以配合v-else和v-else-if使用
值为ok显示这句话
值为no显示这句话
其他显示这句话
运行结果:
v-show 是否显示
v-show和v-if用法大致一样,区别在于,但是不支持v-else-if和v-else,而且v-show只是控制元素显示和隐藏,但是元素还在代码上,而v-if是控制是否插入元素,如果不插入元素不会出现在代码上。
v-show控制显示
运行结果:
v-for 循环
v-for用来遍历可迭代对象
{{ item }}
渲染结果:
a
b
c
d
v-model表单输入绑定
v-model一般用于和表单内 及
元素的双向绑定。它会根据控件类型自动选取正确的方法来更新元素。
输入框:
当在input标签内输入的时候,p标签也会自动更新数据:
单选框
其他指令
v-text
v-html
v-pre
v-cload
v-once
计算属性和监听属性
computed计算属性
虽然把表达式放到模板中非常便利,但是他们的设计初衷是用来做简单计算的。在模板中放入太多的逻辑会让模板过于复杂且不利于维护,我们可以把复杂的逻辑放到计算属性中。
这个表达式的作用是把变量message中的字符反转,这种比较复杂吊的逻辑可以用计算属性:
两种写法的实现效果是一样的,但是使用计算属性缺大大减少了模板的代码量。
watch监听属性
监听属性的作用是监听某个值的变化,从而做出相应的操作。监听属性是一个对象,它的键是要监听的变量,值一般是一个当变量发生改变时,需要执行的函数。这个函数一般有两个形参,分别是更新后的值和更新前的值。
运行结果:
注意事项
当全局过滤器和组件过滤器重名时,组件过滤器优先;
子组件调用过滤器,过滤器在全局和父组件都有同名的,全局的优先。
实例生命周期
每个Vue实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新 DOM 等。同时在这个过程中会自动运行一些叫做生命周期钩子的函数,我们可以使用这些函数,在实例的不同阶段加上我们需要的代码,实现特定的功能。
beforeCreate:
在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
created:
在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始
beforeMount:
在挂载开始之前被调用:相关的 render 函数首次被调用。
mounted:
实例挂载到dom之后被调用,可以当成是vue对象的ready方法来使用,一般用它来做dom的初始化操作。
beforeUpdate:
数据发生变化前调用
updated:
数据发生变化后调用