操作 实例 / dom

  • 响应式:数据改变时会触发其他联动。例如:模板中的数据绑定;计算属性的重新计算;

————————————————————————————————————————————————————

vm.$parent

  • $parent 属性可以用来从一个子组件访问父组件的实例

vm.$root

  • 在每个 new Vue 实例的子组件中,其根实例可以通过 $root 属性进行访问。子组件通过this.$root访问根组件及包含的data等。
  • 如果当前实例没有父实例,此实例将会是其自己。

vm.$children

  • 当前实例的直接子组件。需要注意 $children 并不保证顺序,也不是响应式的。如果你发现自己正在尝试使用 $children 来进行数据绑定,考虑使用一个数组配合 v-for 来生成子组件,并且使用 Array 作为真正的来源。
  • 只包含组件,包括传入插槽的组件。不包括dom元素

vm.$refs

  • $refs 只会在组件渲染完成之后生效,并且它们不是响应式的。你应该避免在模板或计算属性中访问 $refs。
  • refs引用,在v-for循环中返回的是组件数组,即使只有一个匹配的ref名,依然返回数组
  • ref有多个相同名时,返回最后一个对象(需验证)

vm.$slots

  • 用来访问被插槽分发的内容(用来获取插入插槽的组件或元素)。每个具名插槽 有其相应的属性 (例如:slot="foo" 中的内容将会在 vm.$slots.foo 中被找到)。default 属性包括了所有没有被包含在具名插槽中的节点(数组)

vm.$scopedSlots

  • 用来访问作用域插槽(用来获取插入作用域插槽的组件或元素,返回的是生成这个组件或元素的函数)。对于包括 默认 slot 在内的每一个插槽,该对象都包含一个返回相应 VNode 的函数。
props: ['message'],
render: function (createElement) {// `<div><slot :text="message"></slot></div>`return createElement('div', [this.$scopedSlots.default({ // default作用域插槽也可以具名text: this.message})])
}

————————————————————————————————————————————————————

全局Vue.directive / 局部directives

  • 有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。
  • update、componentUpdated是指指令绑定的当前组件发生改变,例如:在组件my-vue引用时绑定指令,该组件内部发生变化是不会触发事件的。
  • 一个指令定义对象可以提供如下几个钩子函数 (均为可选):
    • bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。
    • inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
    • update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新。(更新是指绑定的数据更新而不是指界面渲染变化)
    • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。(更新是指绑定的数据更新而不是指界面渲染变化)
    • unbind:只调用一次,指令与元素解绑时调用。
  • 钩子函数的参数 (即 el、binding、vnode 和 oldVnode)
    • el:指令所绑定的元素,可以用来直接操作 DOM 。除了 el 之外,其它参数都应该是只读的,切勿进行修改。如果需要在钩子之间共享数据,建议通过元素的 dataset(元素自定义特性,以data-开头) 来进行。
    • binding:一个对象,包含以下属性:
      • name:指令名,不包括 v- 前缀。
      • value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2。(绑定vue实例下的数据)
      • oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
      • expression:字符串形式的指令表达式。例如 v-my-directive="1 + 1" 中,表达式为 "1 + 1"。
      • arg:传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 "foo"。(传入固定值)
      • modifiers:一个包含修饰符的对象。例如:v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }。
    • vnode:Vue 编译生成的虚拟节点。(vnode并不是vue实例,而是vue实例中渲染函数render执行后生成的结果)
    • oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。
Vue.directive('demo', {bind: function (el, binding, vnode) {var s = JSON.stringifyel.innerHTML ='name: '       + s(binding.name) + '<br>' +'value: '      + s(binding.value) + '<br>' +'expression: ' + s(binding.expression) + '<br>' +'argument: '   + s(binding.arg) + '<br>' +'modifiers: '  + s(binding.modifiers) + '<br>' +'vnode keys: ' + Object.keys(vnode).join(', ')}
})
  • 在很多时候,你可能想在 bind 和 update 时触发相同行为,而不关心其它的钩子。
Vue.directive('color-swatch', function (el, binding) {el.style.backgroundColor = binding.value
})

转载于:https://www.cnblogs.com/qq3279338858/p/10283954.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql注入程序_Java应用程序中SQL注入

sql注入程序在本文中&#xff0c;我们将讨论什么是SQL注入攻击。 以及它如何影响任何Web应用程序使用后端数据库。 在这里&#xff0c;我专注于Java Web应用程序。 开放Web应用程序安全性项目&#xff08;OWAP&#xff09;列出了SQL注入是Web应用程序的主要漏洞攻击。 黑客将We…

C++设计模式-Prototype原型模式

作用&#xff1a; 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口&#xff08;Clone&#xff09;&#xff0c; Clone()实现和具体的语言相关&#xff0c;在C中通过拷贝构造函数实现。…

[SHOI2008]cactus仙人掌图

Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路&#xff08;simple cycle&#xff09;里&#xff0c;我们就称这张图为仙人掌图&#xff08;cactus&#xff09;。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 举例来说&#xff0c;上面的第一…

java 导入导出txt文件_Java读取和写入txt文件

1 问题描述对于java的读取和写入txt一直心存疑惑&#xff0c;随着知识的积累&#xff0c;又重新进行学习&#xff0c;对java的文件读写理解更加深刻&#xff0c;在这里将自己的小小经验总结分享给大家。下面是大家了解java流的一个基本框架。2 问题分析在java中&#xff0c;jav…

[国家集训队] tree Ⅱ

bzoj2631&#xff08;权限题。。。&#xff09;:链接 落咕:链接 考察的是LCT维护链上信息。 但是这个题不一样的是又有加法又有乘法。。。&#xff08;有木有想到落咕的模板——线段树2qwq&#xff09; 因为乘法的运算优先度比加法高&#xff0c;所以我们要先做乘法再做加法&am…

C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说&#xff0c;它们之间的复制是很简单的&#xff0c;例如&#xff1a; int a88; int ba; 而类对象与普通对象不同&#xff0c;类对象内部结构一般较为复杂&#xff0c;存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include <iostream>u…

java用for循环修改密码_Java for循环的几种用法分析

J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环&#xff0c;可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式&#xff0c;说明如何自行定义能被这样遍历的类&#xff0c;并解释和这一机制的一些常见问题。在Java程序中&…

apache camel_Apache Camel入门

apache camel在先前的博文中&#xff0c;我们了解了企业集成模式&#xff08;EIP&#xff09;。 现在&#xff0c;在这篇文章中&#xff0c;我们将研究实现这些模式的Apache Camel框架。 关于骆驼&#xff1a; Apache Camel是一个开放源代码项目&#xff0c;已有将近5年的历史…

C++拷贝构造函数详解

一. 什么是拷贝构造函数 首先对于普通类型的对象来说&#xff0c;它们之间的复制是很简单的&#xff0c;例如&#xff1a; [c-sharp] view plaincopyint a 100; int b a; 而类对象与普通对象不同&#xff0c;类对象内部结构一般较为复杂&#xff0c;存在各种成员变量。 …

mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理

一、连接查询图解示意图1、建表语句部门和员工关系表&#xff1a;CREATE TABLE tb_dept (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键ID,deptName varchar(30) DEFAULT NULL COMMENT 部门名称,PRIMARY KEY (id)) ENGINEInnoDB AUTO_INCREMENT6 DEFAULT CHARSETutf8;CREAT…

针对故障场景的血液,汗液和书写自动集成测试

去年冬天&#xff0c;我为仍在工作的客户编写并发布了一项服务。 总体而言&#xff0c;该服务满足了业务需求和性能要求&#xff0c;但是使用该服务的一个团队告诉我&#xff0c;他们定期遇到一个问题&#xff0c;该问题是该服务将返回500个错误&#xff0c;并且在重新启动该服…

java 8 update 11_从Java 8升级到Java 11应该注意的问题

从 Java 8迁移到Java 11比大多数升级更棘手。以下是这个过程的一些注意事项。模块在Java 9中Java引入了历史上最大的变化之一 是模块&#xff0c;但&#xff1a;不必将你自己的代码模块化以后才能升级到Java 11。在大多数情况下&#xff0c;放在类路径classpath上的代码能继续在…

标签树的三种遍历

一、标签树的下行遍历 属性说明.contents子节点的列表&#xff0c;将<tag>所有儿子节点存入列表中&#xff08;只能获取下一级儿子节点&#xff09;.children子节点的迭代类型&#xff0c;与.contents类似&#xff0c;用于循环遍历儿子节点.descendants子孙节点的迭代类型…

Git 使用规范流程

团队开发中&#xff0c;遵循一个合理、清晰的Git使用流程&#xff0c;是非常重要的。 否则&#xff0c;每个人都提交一堆杂乱无章的commit&#xff0c;项目很快就会变得难以协调和维护。 下面是ThoughtBot 的Git使用规范流程。我从中学到了很多&#xff0c;推荐你也这样使用Git…

oracle安装静默

安装环境&#xff1a;centos71、修改主机名 /etc/sysconfig/network#HOSTNAMEoracledb.012、修改ip和对应的主机名 /etc/hosts#10.5.1.190 oracledb.013、关闭Selinux /etc/selinux/config#SELINUXdisabled4、参考官方文档安装依赖的软件包 binutils-2.23.52.0.1-12.el7.x86_64…

[MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)

通过介绍世界上最受欢迎的编程语言之一掌握Java编程概念 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了一个极端的报价 。 我们提供的《 Ultimate Java Development and Certification Guide 》 仅售20美元&#xff0c;而…

python浅拷贝的说法_Python中List的复制(直接复制、浅拷贝、深拷贝)

直接赋值&#xff1a;如果用 直接赋值&#xff0c;是非拷贝方法。这两个列表是等价的&#xff0c;修改其中任何一个列表都会影响到另一个列表。old [1,[1,2,3],3]new []for i in range(len(old)):new.append(old[i])new[0] 3new[1][0] 3-----------------------Before:[1,…

AliOS-Things Visual studio code helloworld 入门

配置环境的时候别忘了下载&#xff1a;GCC工具链&#xff1a;https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads AliOS Things 完成第一个应用&#xff1a;Hello World 全局掌控 从Git上下载源码用VSCode打开源码&#xff0c;查看源码的目录结构打开Hello…

java 联网_java网络

这个图很形象的展示了OSI的五层架构之间的关系。OSI被称为开放式互联&#xff0c;是国际标准组织制定的网络模型&#xff0c;本来是七层&#xff0c;后来把表现层和会话层加到应用层里面了。那么五层模型中的每一层具体都是干什么的呢&#xff1f;在标准的网络模型中&#xff0…

[小米OJ] 4. 最长连续数列

思路&#xff1a; 时间限制为O(n)&#xff0c;即不能使用先排序后寻找的方法。 这里利用哈希表查询插入复杂度都为O(1)的特性来解&#xff0c;利用一个哈希表来保存每一个数字以及其所在数列的长度。 遍历每一个数字n&#xff1a;查询表中是否存在n-1和n1&#xff0c;若存在&am…