Vue.js笔记,从入门到精通

Vue.js笔记,从入门到精通html

这是我总结的笔记,对今天的学习总结了一半,笔记后面再补上,由于以前会angular,因此学起来很简单。mvvm

Vue.js 是一种mvvm模式,与angular的区别是彻底没有controller的概念。函数

Vue实例学习

        构造器:每一个应用都是经过构造函数Vue建立一个根实例,实例化时,须要传入一个选项对象,能够包         含数据、模板、挂载元素、方法、生命周期钩子等。能够扩展Vue构造器,用预约义选项建立可复用的         组件构造器,全部Vue.js组件都是被扩展的Vue实例:
        var myComponent = Vue.extend({
            //扩展选项
        });
        //全部的‘myComponent’实例都将以预约义扩展选项被建立
        var myComponentInstance = new myComponent();网站

        属性与方法:每一个实例都会代理 data 对象里全部的属性,注意只有这些被代理的属性是响应的。若是           在实例建立以后添加新的属性到实例上,它不会触发视图更新。除了这些数据属性,Vue 实例暴露了一         些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的数据属性区分。this

        实例生命周期:Vue实例在建立时有一系列初始化步骤,在此过程当中,将调用一些生命周期钩子,给自         定义逻辑提供运行机会。例如 created 钩子在实例建立后调用,也有其余的钩子,在实例生命周期的不         同阶段调用,compiled、ready、destroyed。钩子的 this 指向调用它的Vue实例,组件的自定义逻辑分         割在这些钩子中。url


数据绑定语法
Vue.js的模板是基于DOM实现的,全部的Vue.js模板都是可解析的有效的HTML,经过一些特殊的特性作了加强,Vue模板于是从根本上不一样于基于字符串的模板。spa

        插值
                文本:数据绑定最基础形式是文本插值,使用“Mustache”语法(双大括号)
                <span>{{ msg }}</span>
                Mustache 标签会被相应数据对象 msg 属性的值替换,随属性变化而更新。处理单次插值,数据                   变化再也不更新。
                <span>{{ *msg }}</span>代理

                原始的HTML:双Mustache标签将数据解析为纯文本而不是HTML,输出真HTML字符串,须要用                 三Mustache标签。
                <div>{{{ raw_html }}}</div>
                内容以 HTML 字符串插入——数据绑定将被忽略。若是须要复用模板片段,应当使用 partials。
                注意在网站上动态渲染任意 HTML 是很是危险的,由于容易致使 XSS 攻击。记住,只对可信内容                 使用 HTML 插值,永不用于用户提交的内容。htm

                HTML特性:Mustache标签也能够用在HTML特性内,注意在Vue.js指令和特殊特性内不能用插值。                 若是用错Mustache标签Vue.js会给出警告。
                <div id="item-{{ id }}"></div>

        绑定表达式
        放在Mustache标签内的文本称为绑定表达式。在Vue.js中,一段绑定表达式由一个简单的JavaScript表         达式和可选的一个或多个过滤器构成。

                JavaScript表达式:目前为止,咱们的模板只绑定到简单的属性键。不过实际上Vue.js在数据绑定                 内支持全功能的JavaScript表达式。
                {{ number + 1 }}
                {{ ok ? 'YES' : 'NO' }}
                {{ message.split('').reverse().join('') }}
                这些表达式在所属的Vue实例的做用域内计算,每一个绑定只能包含单个表达式。

                过滤器:Vue.js容许在表达式后添加可选的“过滤器(Filter)”,以“管道符”指示。
                {{ message | caplitalize }}
                这个过滤器只是一个JavaScript函数,返回大写化的值。Vue.js提供数个内置过滤器,能够开发自                 己的过滤器。
                管道语法不是JavaScript语法,不能在表达式内使用过滤器,只能添加到表达式的后面。过滤器可                 以串联。
                {{ message | filter1 | filter2 }}
                {{ message | filterA 'arg1' age2 }}

        指令
        是特殊的带有前缀 v- 的特性。指令的值限定为绑定表达式,所以JavaScript表达式及过滤器规则在这里         也适用。指令职责是当其余表达式的值改变时吧某些特殊的行为应用到DOM上。

        <p v-if="greeting">Hello!</p>
        这里 v-if 指令根据表达式 greeting 值的真假删除/插入 <p> 元素。

                参数:有些指令能够在名称后面带一个“参数”(Argument),中间放一个冒号隔开。例如,v-bind                   指令用于响应地更新HTML特性。
                <a v-bind:href="url"></a>
                这里 href 是参数,它告诉 v-bind 指令将元素的 href 特性跟表达式 url 的值绑定。可能你已注意到                  能够用特性插值 href="{{url}}" 得到一样的结果:这样没错,而且实际上在内部特性插值会转为 v-                  bind 绑定。
                v-on 指令,用于监听DOM事件:
                <a v-on:click="doSomething"></a>

                修饰符:修饰符 (Modifiers) 是以半角句号 . 开始的特殊后缀,用于表示指令应当以特殊方式绑                      定。例如 .literal 修饰符告诉指令将它的值解析为一个字面字符串而不是一个表达式。
                <a v-bind:href.literal="/a/b/c"></a>
                固然,这彷佛没有意义,由于咱们只须要使用 href="/a/b/c" 而没必要使用一个指令。这个例子只是                    为了演示语法。

                缩写:v- 前缀是一种标识模板中特定的 Vue 特性的视觉暗示。当你须要在一些现有的 HTML 代                    码中添加动态行为时,这些前缀能够起到很好的区分效果。但你在使用一些经常使用指令的时候,你                    会感受一直这么写实在是啰嗦。并且在构建单页应用(SPA )时,Vue.js 会管理全部的模板,此                  时 v- 前缀也没那么重要了。所以Vue.js 为两个最经常使用的指令 v-bind 和 v-on 提供特别的缩写。
                v-bind缩写
                <!-- 完整语法 -->
                <a v-bind:href="url"></a>
                <!-- 缩写 -->
                <a :href="url"></a>

                v-on缩写
                <!-- 完整语法 -->
                <a v-on:click="doSomething"></a>
                <!-- 缩写 -->
                <a @click="doSomething"></a>

计算属性

模板中绑定表达式很是便利,实际上只用于简单的操做。模板是为了描述视图的结构。在模板中放入太多的逻辑会让模板太重且难以维护。这就是为何 Vue.js 将绑定表达式限制为一个表达式。若是须要多于一个表达式的逻辑,应当使用计算属性

        计算属性

        computed: {

            a: function(){

            },

            b: function(){

            }

        }

        计算属性默认getter,须要时能够提供一个setter。

相关文章
相关标签/搜索