Vue.js-开篇

进修笔记:
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);//2
myData.a = 3;
console.log(app.a);//3

生命周期

Vue的生命周期钩子:

  • created:实例建立完成后挪用,此阶段完成了数据的观察等,但未挂载,$el还不可用。(须要初始化处置惩罚一些数据时会比较有效)
  • mountedel挂载到实例上后挪用,第一个营业逻辑会在这里最先。
  • beforeDestroy:实例烧毁之前挪用。重要解绑一些运用addEventListener监听的事宜等。

这些钩子与eldata相似,也是作为选项写入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白名单内的全局变量,比方MathDate

过滤器

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元素上的属性,比方idclass等。

另一个非常重要的指令就是v-on,用来绑定事宜监听器。

在一般元素上,v-on能够监听原生的DOM事宜,除了click外另有dbclickkeyupmousemove等。表达式可所以一个要领名,这些要领都写在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-bindv-on指令都供应了语法糖,也能够说是缩写,比方v-bind缩写成:,多用于aimg标签;v-on缩写成@,所用于inputbutton标签。

    原文作者:whjin
    原文地址: https://segmentfault.com/a/1190000018545633
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞