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

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

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

     let data = { seen: true }
Object.freeze(data);
let app3 = new Vue({
el: '#app3',
data: data
});

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提供了完整的数据表达式支持。有个限制:每个绑定只能是包含单个表达式。

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

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

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

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

     <span>{{newMessage}}</span>
<p>计算属性-逆转:{{ reverseMessage2 }}</p>
<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。计算属性不合适时,使用方法。

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

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

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

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

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

15、事件修饰符

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

16、按键修饰符

     <!-- 只有 keycode 是 13 时,调用 submit -->
<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

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

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

18、表单处理

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

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

  

vue中的一些知识点--多看文档的更多相关文章

  1. 从Mac的Finder中访问你的iCloud文档

    [从Mac的Finder中访问你的iCloud文档] 从OS X 10.7.2开始,iCloud就深入Mac当中,我们也可以在Finder中访问储存在iCloud中的文件,甚至当你拥有多台Mac的时候 ...

  2. Print2flash在.NET(C#)64位中的使用,即文档在线预览

    转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览   office文档(word,ex ...

  3. C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

    XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...

  4. Spring Boot中使用Swagger2构建API文档

    程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...

  5. document.write : 什么是在html输出中使用,什么是文档加载后使用?

    理解:您只能在 HTML 输出中使用 document.write.如果您在文档加载后使用该方法,会覆盖整个文档. Javascript中只能在 HTML 输出流中使用 document.write, ...

  6. eclipse 中使用中文JAVA api文档

    http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文 ...

  7. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介

    参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...

  8. html中如何获取元素在文档中的位置

    html中如何获取元素在文档中的位置 一.总结 一句话总结: $("#elem").offset().top $("#elem").offset().left ...

  9. SpringBoot2中,怎么生成静态文档

    SpringBoot2中,怎么生成静态文档 在实际开发过程中,我们通过swagger就可以生成我们的接口文档,这个文档就可以提供给前端人员开发使用的.但是,有时候,我们需要把我们的接口文档,提供给第三 ...

随机推荐

  1. 关闭防火墙,selinux,交互式设置IP的脚本

    脚本内容: #!/bin/bash # ens=$(cat /proc/net/dev | awk '{if($2>0 && NR > 2) print substr($1 ...

  2. C语言volatile关键字-漫画(转)

    转载地址:https://zhuanlan.zhihu.com/p/56191979 ————— 第二天 ————— ———————————— Java内存模型简称JMM(Java Memory Mo ...

  3. Ntrip协议简介(转)

    原文地址:https://blog.csdn.net/sinat_19447667/article/details/67637167 1 什么是Ntrip? CORS(Continuously Ope ...

  4. Session小结

    session小结1.session是什么Session是服务器为每个访问这个服务器的客户端用户创建的一个容器.这个容器中存储的数据能够在多个request之间实现共享.而且,这个容器只属于当前这个用 ...

  5. onclick事件传递对象参数

    <a href="#"onclick="editName(JSON.stringify(data).replace(/"/g, '"'))&qu ...

  6. Hadoop 管理工具HUE配置-初始配置

    1 界面换成中文 默认是英文的,可以修改为中文 1.修改配置文件settings.pynano hue/desktop/core/src/desktop/settings.py LANGUAGE_CO ...

  7. Linux期中架构

    1    在构建完模板后  开启虚拟机后 需要再重启一次  以解决网卡不能看见的问题 ########################################add begin 2018-05 ...

  8. mysql-xtrabackup备份sh: xtrabackup_56: command not found与error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

    sh: xtrabackup_56: command not foundinnobackupex: fatal error: no 'mysqld' group in MySQL options解决办 ...

  9. jenkins自动构建站点

    jenkins构建iis主要内容, 安装过程百度很多,就不多介绍 看图是主要内容 msbuid功能 1.执行vs的编译过程 2.编译好的文件发布到具体的路径下 批处理功能 1.创建站点 2.创建对应的 ...

  10. Angular Beijing 发布

    为了帮助 Angular 在国内的推广,申请了一个新的域名 www.ngbeijing.cn,  我将 Angular 相关的优秀文章集中在这个站点,欢迎大家访问. 刚刚转载了几篇优秀的文章. Ang ...