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就可以生成我们的接口文档,这个文档就可以提供给前端人员开发使用的.但是,有时候,我们需要把我们的接口文档,提供给第三 ...
随机推荐
- DLL简单分析与调用方法
最近为了分析一个没有代码的DLL有哪些函数,找了各种方法. 把结果分享一下:三个方法都没法得到函数的参数,有点让我失望. DLL Export Viewer NikPEViewer Dumpbin 配 ...
- Pytest高级进阶之Fixture
From: https://www.cnblogs.com/feiyi211/p/6626314.html 一. fixture介绍 fixture是pytest的一个闪光点,pytest要精通怎么能 ...
- maven项目自动创建src/main/resources等四个资源文件夹
如何使maven项目自动创建这四个文件夹:src/main/resources.src/main/java.src/test/java.src/test/resources 网传甚广的在Config ...
- Spring boot加载REACTIVE源码分析
一,加载REACTIVE相关自动配置 spring boot通过判断含org.springframework.web.reactive.DispatcherHandler字节文件就确定程序类型是REA ...
- ZooKeeper是按照CP原则构建的,不适合做Service服务发现
一.cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾. ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的. ②A:Avail ...
- Linux常见企业面试题
1:只查看test.txt (100行)文件中第20行到30行的数据(企业常见面试题) 答: seq (序列) 第一种方法:head -30 test1.txt | tail -11 第二种方法:se ...
- Nuget调用简单封装.
1. 项目引用Dapper作为直接访问, 为了使用方便, 封装一下.达到效果: - 数据库连接配置在webconfig.xml中. - 常用调用方法封装. 调用: //可以采用单例模式. //全局实 ...
- memset与fill的区别
简介与区别 memset函数 按照字节填充某字符 在头文件<cstring>里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件<algorithm>里面 ...
- vs2017安装和使用教程(详细)
借鉴:https://blog.csdn.net/qq_36556893/article/details/79430133#一.官网下载
- vue登录注册及token验证
// router.jsimport Vue from 'vue'import VueRouter from 'vue-router' Vue.use(VueRouter) const routes ...