• vue中的一些知识点--多看文档


    重温vue,一些知识点简单记录。

    1、我们都知道当数据变化时,视图会重新渲染。注意:只有当vue实例被创建时,data中存在的属性才是响应式的。后续新添加的属性不会触发视图变化。

        使用 Object.freeze() 会阻止修改现有属性,也就意味着响应系统不能再追踪变化。此时强行修改 会报错。

    1     let data = { seen: true }
    2     Object.freeze(data);
    3     let app3 = new Vue({
    4       el: '#app3',
    5       data: data
    6     });

    2、不要在选项属性上或者回调使用 箭头函数。因为箭头函数是和父级上下文绑定在一起的,this 不会是如你所期的vue实例,经常会报如下错。

    Uncaught TypeError: Cannot read property of undefined 或 
    Uncaught TypeError: this.myMethod is not a function 之类的错误。

    3、v-bind 指令。在布尔值的情况下,它们的存在即为true。

        <button v-bind:disabled="isButtonDisabled">Button</button>

    如果 isButtonDisabled 的值为 null,false,undefined 时,disabled 属性甚至不会被渲染在 button 元素中。

    4、对于所有的数据绑定,vue提供了完整的数据表达式支持。有个限制:每个绑定只能是包含单个表达式。

    1   <div id="app8">
    2     {{number + 1}}
    3     {{ active ? 'active' : 'not-active'}}
    4     {{ message.split('').reverse().join('') }}
    5     <div :id=" 'list-' + id "></div>
    6   </div>

      模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量。

    5、对于任何的逻辑都应该使用 计算属性。

      计算属性 和 方法 都可以实现 字符串反转效果,如下:(计算属性不用加 括号,方法需要加 括号)

    1     <span>{{newMessage}}</span>
    2     <p>计算属性-逆转:{{ reverseMessage2 }}</p>
    3     <p>方法-逆转:{{ reverseMessage2() }}</p>

      注意:计算属性是根据它们的依赖进行缓存的,只要依赖不发生变化,计算属性就可以立即拿到计算结果,而不用再次执行函数。

        相比之下,每次触发渲染时,方法总是会再次调用。

    6、侦听属性 watch -- 用来观察和响应vue实例上的数据变动。当你的一些数据随其他数据变化时,很容易滥用watch,通常更好地做法是使用计算属性而不是命令式的watch回调。

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

    7、绑定HTML  class 

      对象语法、数组语法(可以嵌套对象语法)

      用在组件上,当在一个自定义组件上使用class时,这些class会被添加到该组件的根元素。并且不会覆盖原有的class。

    8、绑定内联样式

      对象语法 -- css 可以使用驼峰式,也可以使用短横线分隔(一定要用单引号括起来)。对象语法常常结合返回对象的计算属性使用。

      数组语法 -- 将多个样式对象应用到同一个元素上。

    9、v-if 指令。

      v-if 使用时,是作用在一个元素上,当需要作用在多个元素上可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素。

    10、通过 key 管理可复用元素。vue会尽可能高效的渲染元素,通常会复用已有元素而不是从头开始渲染。

    11、v-show 只是根据条件显示或者隐藏,始终被渲染并保留在DOM中。注意:v-show 不支持 template 也不支持 v-else 。

      与 v-if 对比,v-if 有更大的切换开销,v-show 有更大的渲染开销。因此,如果元素需要频繁的切换,使用v-show较好,如果运行时条件很少改变,使用v-if较好。

    12、vue包含一组观察数组的变异方法。它们会触发视图的变化。

      push()、pop()、shift()、unshift()、splice()、sort()、reverse()

      vue 不能检测以下数组的变动:利用索引值直接设置一个项、改变数组长度。

      vue 不能检测对象属性的增加或删除。

      但是可以使用全局方法 Vue.set(object, key, value) 方法来替代上面方法,以触发视图更新。

      如果要添加多个属性,参看:https://cn.vuejs.org/v2/guide/list.html

    13、使用 计算属性来 筛选或者过滤 数据额,而不是重新备份data。计算属性不合适时,使用方法。

     1     <div>
     2       <span>使用计算属性来筛选或过滤,而不是备份数据</span>
     3       <ul>
     4         <li v-for="n in reverseNumber">{{n}}</li>
     5       </ul>
     6       <span>计算属性不合适时(例如在v-for循环中),使用方法</span>
     7       <ul>
     8         <li v-for="n in sort(numbers)">{{n}}</li>
     9       </ul>
    10     </div>
     1       data: {
     2         numbers: [1,5,2,6,9,4,3,7]
     3       },
     4       computed: {
     5         reverseNumber: function() {
     6           return this.numbers.sort().reverse();
     7         }
     8       },
     9       methods: {
    10         sort: function(data) {
    11           return data.sort();
    12         }
    13       }

      v-for 也可以取整数,它将重复多次模板。

    1     <div>
    2       <span v-for="n in 10">{{n}}</span>
    3     </div>

    14、v-for 和 v-if 作用于同一节点时。

      v-for 比 v-if 优先级要高,这就意味着 v-if 要重复运行与每一个循环中。

    15、事件修饰符

      .stop、.prevent、.capture、.self、.once、.passive 这些修饰符可以组合使用,使用时顺序很重要。

    16、按键修饰符

    1     <!-- 只有 keycode 是 13 时,调用 submit -->
    2     <input type="text" @keyup.13="submit">

    常用按键别名:.enter、.tab、.delete、.space、.esc、.up、.down、.right、.left

      可以通过全局 config.keycodes 自定义按键修饰符别名, Vue.config.keycodes.f1 = 112 

    17、系统修饰键

      .ctrl、.alt、.meta、.shift

    1     <!-- ctrl + enter(13) 才能触发此函数 -->
    2     <input type="text" @keyup.ctrl.13="submit">

      .exact 修饰符。允许你控制由精确的系统修饰符组合触发的事件。

    18、表单处理

      在文本域插值(<textarea></textarea>)并不会生效,应该使用 v-model 来绑定。

      修饰符:.lazy、.number、.trim

      

  • 相关阅读:
    MySql--密码查看或修改
    javaweb学习--Servlet开发(一)
    javaweb学习--http协议
    Vue.js学习笔记(一)
    javascript事件处理
    javascript时间的相关操作
    代理模式(Proxy)
    单例模式(Singleton)
    ArrayBlockingQueue和LinkedBlockingQueue队列
    自增(++)和自减(--)运算符
  • 原文地址:https://www.cnblogs.com/xguoz/p/10216164.html
Copyright © 2020-2023  润新知