学习笔记:Vue.js基础知识基础知识构造函数Vue的根实例new Vue({}),并启动Vue应用。var app = Vue({ el: “#app”, data: {}, methods: {}});变量app代表这个Vue实例。其中,必不可少的选项是el,用于指定一个页面中已存在的DOM元素来挂载Vue实例,可以是HTMLElement,也可以是CSS选择器。var app = Vue({ el: document.getElementById(‘app’)}); 挂载成功后,可以通过app.$el访问该元素。Vue提供了很多常用的实例属性和方法,都以$开头。data选项用于声明应用内需要双向绑定的数据。建议所有会用到的数据都预先在data内声明,提升业务的可维护性。Vue实例new Vue({}),这里可以使用app代理了data对象里的所有属性,可以这样访问data中的数据:console.log(app.name);除了显式地声明数据外,还可以指向一个已有的变量,并且它们之间默认建立了双向绑定,当修改其中任意一个时,另一个也会跟着变化。var myData = { a: 1};var app = Vue({ el: “#app”, data: myData});app.a = 2;console.log(myData.a);//2myData.a = 3;console.log(app.a);//3生命周期Vue的生命周期钩子:created:实例创建完成后调用,此阶段完成了数据的观测等,但未挂载,$el还不可用。(需要初始化处理一些数据时会比较有用)mounted:el挂载到实例上后调用,第一个业务逻辑会在这里开始。beforeDestroy:实例销毁之前调用。主要解绑一些使用addEventListener监听的事件等。这些钩子与el和data类似,也是作为选项写入Vue实例中,并且钩子的this指向的是调用它的Vue实例。插值与表达式使用(Mustache语法){{}}是最基本的文本插值方法,它会自动将我们双向绑定的数据实时显示出来。v-html直接输出HTML,而不是将数据解析后的纯文本。<div id=“app”><span v-html=“link”></span></div>new Vue({ el: “#app”, data: { link: ‘<a href="#">this is a link.</a>’ }});link的内容将会被渲染成一个a标签,而不是纯文本。如果将用户产生的内容使用v-html输出后,有可能导致XSS攻击,所以要在服务端对用户提交的内容进行处理,一般可将<>转义。如果想要显示{{}}标签,不进行替换,使用v-pre即可跳过这个元素和它的子元素的编译过程。在{{}}中除了简单的绑定属性值外,还可以使用JavaScript表达式进行简单的运算、三元运算等。Vue只支持单个表达式,不支持语句和流程控制。在表达式中不能使用用户自定义的全局变量,只能使用Vue白名单内的全局变量,例如Math和Date。过滤器Vue.js支持在{{}}插值的尾部添加一个管道符(|)对数据进行过滤,经常用户格式化文本,比如字母全部大写、货币千位使用逗号分隔等。过滤的规则是自定义的,通过给Vue实例添加选项filter来设置。<div id=“app”> {{date | formatDate}}</div>过滤器也可以串联,而且可以接收参数:<!–串联–>{{message | filterA | filterB}}<!–接收参数–>{{message | filterA(‘arg1’,‘arg2’)}}过滤器应当用于处理简单的文本转换,如果要实现更为复杂的数据转换,应该使用计算属性。指令事件指令(Directives)是Vue.js模板中最常用的一项功能,它带有前缀v-。指令的主要职责就是当其表达式的值改变时,相应地将某些行为应用到DOM上。v-bind的基本用途是动态更新HTML元素上的属性,比如id、class等。另一个非常重要的指令就是v-on,用来绑定事件监听器。在普通元素上,v-on可以监听原生的DOM事件,除了click外还有dbclick、keyup、mousemove等。表达式可以是一个方法名,这些方法都写在Vue市里的methods属性内,并且是函数的形式,这些函数的this指向的是当前Vue实例本身,因此可以直接使用this.xxx的形式访问或修改数据。Vue.js将methods里的方法进行代理,可以像访问Vue数据一样调用方法:<div id=“app”> <p v-if=“show”>这是一段为本</p> <button @click=“handleClose”>点击隐藏</button></div>new Vue({ el: “#app”, data: { show: true }, methods: { handleClose: function () { this.close() }, close: function () { this.show = false } }});在handleClose方法中直接通过this.close()调用了close()函数。var app = new Vue({ el: “#app”, data: { show: true }, methods: { init: function (text) { console.log(text); }, }, mounted: function () { this.init(‘在初始化时调用’); }});app.init(‘通过外部调用’);语法糖语法糖是指在不影响功能的情况下,添加某种方法实现同样的效果,从而方便程序开发。Vue.js的v-bind和v-on指令都提供了语法糖,也可以说是缩写,比如v-bind缩写成:,多用于a、img标签;v-on缩写成@,所用于input、button标签。