vue中的一些知识点--多看文档
重温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中的一些知识点--多看文档的更多相关文章
- 从Mac的Finder中访问你的iCloud文档
[从Mac的Finder中访问你的iCloud文档] 从OS X 10.7.2开始,iCloud就深入Mac当中,我们也可以在Finder中访问储存在iCloud中的文件,甚至当你拥有多台Mac的时候 ...
- Print2flash在.NET(C#)64位中的使用,即文档在线预览
转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览 office文档(word,ex ...
- C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...
- Spring Boot中使用Swagger2构建API文档
程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...
- document.write : 什么是在html输出中使用,什么是文档加载后使用?
理解:您只能在 HTML 输出中使用 document.write.如果您在文档加载后使用该方法,会覆盖整个文档. Javascript中只能在 HTML 输出流中使用 document.write, ...
- eclipse 中使用中文JAVA api文档
http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文 ...
- ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...
- html中如何获取元素在文档中的位置
html中如何获取元素在文档中的位置 一.总结 一句话总结: $("#elem").offset().top $("#elem").offset().left ...
- SpringBoot2中,怎么生成静态文档
SpringBoot2中,怎么生成静态文档 在实际开发过程中,我们通过swagger就可以生成我们的接口文档,这个文档就可以提供给前端人员开发使用的.但是,有时候,我们需要把我们的接口文档,提供给第三 ...
随机推荐
- @cacheevict 清除多个key
@Caching(evict={@CacheEvict(“a1”),@CacheEvict(“a2”,allEntries=true)}): 参考:https://www.cnblogs.com/ha ...
- C语言之一维数组与指针
一维数组: 假如有一维数组如下: ]; 该数组有3个元素,数据类型为char型,地址空间如下. 如果想访问数据,直接使用a[0].a[1].a[2]取出相应地址空间的值即可 一级指针: 指针即地址,c ...
- MQTT研究之EMQ:【EMQ之HTTP认证/访问控制】
今天进行验证的逻辑是EMQ的http的Auth以及ACL的逻辑. 首先,参照HTTP插件认证配置的说明文档进行基本的配置, 我的配置内容如下: ##-------------------------- ...
- 微软MSDN原版Windows Server 2008 R2 With SP1下载
Windows Server 2008 R2是windows 服务器版本Windows Server 2008 R2继续提升了虚拟化.系统管理弹性.网络存取方式,以及信息安全等领域的应用,其中有不少功 ...
- LINUX FTPshez
https://www.jb51.net/article/132337.htm FTPQ重启: service vsftpd restart
- python网络爬虫学习笔记(二)BeautifulSoup库
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...
- ct
b80e00u9dxwpqw7bt98rm5zmlxt08cxs A3WKXKBHWDUOEOP3EVJA2YRM6JSZPJWGTCQ5BSYAWI4GMSIXOAT2IQ
- 关闭Cadence Orcad Capture CIS原理图弹出startpage页面的方法
打开原理图工具 Orcad Capture CIS 时,总是会弹出startpage 页面,有时候感觉这个东西挺碍事的,还是关了感觉好.解决方法如下:(1) View---Toolbar----Com ...
- 利用JAVA API函数实现数据的压缩与解压缩
综述 许多信息资料都或多或少的包含一些多余的数据.通常会导致在客户端与服务器之间,应用程序与计算机之间极大的数据传输量.最常见的解决数据存储和信息传送的方法是安装额外的存储设备和扩展现有的通讯能力 ...
- express+websocket+exec+spawn=webshell
var child_process = require('child_process'); var ws = require("nodejs-websocket"); consol ...