vue中相关概念

vue.js是什么

是一套构建用户界面的渐进式框架

vue应用组成

一个 Vue 应用由一个通过new Vue创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成。

vue数据的响应

当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其data对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。

实例生命周期

beforeCreat  ----> 创建vue实例前

created --->  创建vue实例完成后

beforeMount  ----->  DOM渲染前

mounted  ----->  DOM渲染后

beforeUpdate  ----->  数据更新前

updated ------>  数据更新后

beforeDestroy -----> vue实例销毁前

destroyed  ------>   vue实例销毁后

模板语法

vue模板为什么可以被浏览器解析?

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。

底层是如何实现的?

Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,在应用状态改变时,Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

计算属性和观察者

什么时候使用计算属性?

1.对于需要任何复杂逻辑显示的变量,就应该使用计算属性(computed);

2.当有一些数据需要随着其它数据变动而变动时,使用计算属性比watch监听更方便;

计算属性基本写法

实例:

var vm =newVue({

     el:'#example',

     data: {

     message:'Hello'

    },

    computed: {

    // 计算属性的 getter

    reversedMessage:function(){

    // `this` 指向 vm 实例

    returnthis.message.split('').reverse().join('')

    }

    }

})

计算属性与方法的区别

相同点:使用结果都是一样的;

不同点:计算属性只有在它的相关依赖发生改变时才会重新求值,否则会返回已缓存的值;

               方法每当触发重新渲染时,调用方法将总会再次执行函数。

计算属性的 setter

计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter;

注意:当写了setter后,运行computed中的方法时,setter 会被调用;

侦听器

当需要在数据变化时执行异步或开销较大的操作时,使用watch是最合适的;

watch中可以处理一些异步的操作,计算属性不可以;

Class 与 Style 绑定

*通过v-bind来绑定class和style;

class绑定的语法:

1.对象语法:v-bind:class="{ active: isActive, 'text-danger': hasError }"

2.数组语法:v-bind:class="[activeClass, errorClass]"

3.以上两个语法都可以使用在组件中,动态绑定的class名不会覆盖已存在的名;

style绑定的语法:

1.对象语法:v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"

2.数组语法:v-bind:style="[baseStyles, overridingStyles]"

style自动添加前缀

当v-bind:style使用需要添加浏览器引擎前缀的 CSS 属性时,如transform,Vue.js 会自动侦测并添加相应的前缀。

多重值

2.3.0起,新增了style可以写多个值,如下:

:style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }

在渲染页面时,只会显示数组中,浏览器支持的值,前两种都不支持的情况下,会显示flex。

条件渲染

v-if、v-else、v-else-if(2.1.0新增)

基本使用方法如下:

Yes

noYes

No

以上案例只可以判断有条件指令的元素身上;

条件渲染分组(template元素)

判断多个元素需要使用