美文网首页
VUE 学习笔记

VUE 学习笔记

作者: 素炒饼 | 来源:发表于2018-01-28 00:49 被阅读0次

    新建项目

    npm install vue-cli
    vue init webpack exprice
    npm install
    npm run dev
    

    注意事项

    • methods、watch、生命周期,不能使用箭头函数(箭头函数的 this 绑定父级上下文,不指向 Vue 实例)
    • setTimeout()、setInterval() 只能使用箭头函数

    实例

    var Vm = new Vue({
        el: '#id',  //绑定元素,同Vm.$mount()
        data:{
            key: val    //绑定数据
        },
        data: function(){
            //或 data(){...}
            //Vue组件中的data必须是一个函数  
        },
        computed:{
            key: function(){
                //计算属性,会根据依赖自动更新
            },...
        },
        filters:{
            key: function(){
                //数据过滤器
            },...
        },
        methods:{
            key: function(){
                //事件处理函数
            },...
        },
        watch:{
            key: function(){
                //数据观察
                //实例化时调用$watch遍历watch的每一个属性
            },...
        },
        生命周期钩子: function(8){
            //生命周期
        },
        components:{
            component_name: val //局部注册组件
        }
    })
    

    插值 Mustache

    文本
    <tag>{{...}}</tab>
    
    输出HTML

    站点上动态渲染的 HTML 会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。

    <tag v-html="" />
    
    JavaScript 表达式
    • 只能包含单个表达式
    • 只能访问全局变量的一个白名单,如 Math 和 Date 。不应该在模板表达式中试图访问用户定义的全局变量。
    {{ number + 1 }}
    {{ ok ? 'YES' : 'NO' }}
    {{ message.split('').reverse().join('') }}
    <div v-bind:id="'list-' + id"></div>
    
    <!-- 这是语句,不是表达式 -->
    {{ var a = 1 }}
    <!-- 流控制也不会生效,请使用三元表达式 -->
    {{ if (ok) { return message } }}
    

    指令

    指令 (Directives) 是带有 v- 前缀的特殊属性。当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。

    指令 : 参数 . 修饰符

    属性绑定
    <tag v-bind:attr="" />
    <tag :attr="" />
    
    事件绑定
    <tag v-on:event="" />
    <tag @event="" />
    <tag @event.修饰符="" />
    

    事件修饰符:

    • stop
    双向绑定
    <input v-model="" />
    
    条件渲染
    <tag v-if="" />
    <tag v-else />
    <tag v-if-else="" />
    
    列表渲染
    <tag v-for="item in/of items" />
    <tag v-for="(index,item) in/of items" />
    

    仅以下函数触发视图更新:

    • push() / pop()
    • shift() / unshift()
    • splice()
    • sort()
    • reverse()
    只渲染元素和组件一次
    <tag v-once />
    

    计算属性

    在模板中放入太多的逻辑会让模板过重且难以维护,对于任何复杂逻辑,都应当使用计算属性。

    计算属性的 getter 函数是没有副作用 (side effect) 的,这使它更易于测试和理解。

    var vm = new Vue({
      computed: {
        reversedMessage: function () {
            // 这里我们声明了一个计算属性 reversedMessage
            // 我们提供的函数将用作属性 vm.reversedMessage 的 getter 函数
        }
      }
    })
    

    相关文章

      网友评论

          本文标题:VUE 学习笔记

          本文链接:https://www.haomeiwen.com/subject/ytfaaxtx.html