美文网首页
vue的一些小知识点

vue的一些小知识点

作者: 立的flag一直在倒 | 来源:发表于2018-08-11 10:41 被阅读0次

    1、MVVM层
    M层:数据层
    V层:视图层
    VM层:Vue(监听数据改变并作出映射)

    2、如果要触发原生的绑定事件而不是自定义事件,只需要加上修饰符.native,如: @click.native="testFun"

    3、watch和computed计算属性有缓存,数据没更改时从缓存中直接调用结果

    4、v-if 和 v-show的区别
    v-show会渲染到页面上,只是改变display的值,v-if为false时直接不渲染不在DOM中。
    v-if和v-else-if、v-else 一起出现时必须紧接着写

    5、key值
    Vue会尝试复用页面上已经存在的DOM标签,加上key值可以告诉vue页面上的标签是唯一的,不会复用页面上的标签。
    v-for的:key值尽量不要用自己的index值,可以使用数据的唯一值如item.id,此时性能较高。

    6、不能根据数组下标的方式来添加数组,数据会被改变,但页面不会响应同步更新。
    (1)可以使用数组的push、pop、shift、unshift、splice、sort和reverse方法来对数组进行修改更新。
    (2)通过改变数组的引用
    (3)Vue.set方法:vm.set(target, key, value) Vue.set(vm.info, "address","beijing"); 相当于:vm.set(vm.info, "address","beijing");

    7、template模板占位符
    如:

    <template v-for="(item, index) in list" :key="item.id">
        <div>{{item.text}}</div>
        <span>{{item.id}}</span>
    </template>
    

    渲染后template标签不会在文档中出现,又可以保证里面的内容不用写多个v-for

    8、在根组件的data可以是个对象,但在子组件中必须是一个函数,需要return返回对象。

    9、is特殊属性

     <div id="root">
        <table>
          <tbody>
            <tr is="row"></tr>
            <tr is="row"></tr>
          </tbody>
        </table>
      </div>
    
        Vue.component('row', {
          template: '<tr><td>this is a row</td></tr>'
        });
    

    在使用table时,<tbody>里的标签必须为tr,否则会出bug,若tr以组件的形式引入,必须使用is标签,指明该组件指向的是row组件。相似的ul、select标签也可能出现这样的bug。

    10、子组件接收到父组件传过来的参数后,不能直接对参数进行修改(单向数据流)。需要修改时可以将传入的参数赋值给一个定义的变量,通过
    改变变量来实现。

    11、对于过渡动画,可以通过 appear 特性设置节点在初始渲染的过渡

    <transition
      appear
      appear-class="custom-appear-class"
      appear-to-class="custom-appear-to-class" (2.1.8+)
      appear-active-class="custom-appear-active-class"
    >
      <!-- ... -->
    </transition>
    

    12、对于@keyframe和transition动画同时使用时过渡时长不一致时,可以设置type属性和duration。type="transition"则以transition的时长为准。设置:duration="1000"或者:duration={enter: 3000, leave: 5000}则是自定义动画时长

    相关文章

      网友评论

          本文标题:vue的一些小知识点

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