Vue的属性、事件、插槽
属性
- 自定义属性props ->组件的propos中声明的属性
 - 原生属性attrs ->没有声明属性,默认自动挂载在组件的根元素上,inheritAttrs可以关闭自动挂载
 - 特殊属性class、style ->挂载到组件根元素上,支持字符串、对象、数组等多种用法
 
子组件为何不可以修改父组件传递的propos?
如果修改了,Vue是如何监控到属性的修改并给出警告的?
按个人的理解的话:由于单向数据流,属性只能通过父组件传递到自组件,但是不能反过来,至于Vue监控属性的修改给出警告的话,应该回到我们的生命周期,在事件发生改变之后呢,Vue重新修改,更新DOM节点,发现属性值修改之后更新原有的DOM节点,但是在编译、渲染的时候发现不对了,然后就开始报错。
事件
- 普通事件 ->@click、@input、@change等事件,通过this.$emit('',...)触发
 - 修饰符事件 ->@input.trim,@click.stop,@sumbmit.prevent等,一般用于原生的HTML元素,自定义组件需要自行开发支持
 
this.$emit的返回值?
感觉有个博客写的不错
https://www.cnblogs.com/padding1015/p/7878741.html
插槽
就是子组件提供给父组件使用的一个占位符,父组件中可以添加任何代码、数据放置在子组件的slot标签中

- 匿名插槽:没有name属性,所以叫做匿名插槽
 
<tag1>插槽里面的东西</tag1>  //将要写的内容写在标签内
var tag1mes = {
  template:`<dl>
//在slot中可以添加属性值,也就是作为其默认值,在其后添加标签,可以修改原有的默认标签属性值
    <dt><slot></slot></dt>  //添加一个slot标签,定于的就是一个插槽
    <dd>插槽插入内容之后的一段文字</dd>
  </dl>`
}
- 具名插槽
比如说,替换的东西很多啊,在渲染数据的时候,我需要的东西很多,但是总不可能全部都用匿名的吧,到时候都乱套了
所以呢?这时候用上具名插槽就很有必要了 
<tag1 :fatherdata="fatherdata">
        <template slot="tit">我的标题</template>
        <template slot="mes">我的内容</template>
</tag1>
template:` <dl>
      <dt><slot name="tit">默认标题</slot></dt>
      <dd><slot name="mes">默认的内容</slot></dd>
</dl>`
通过slot的name属性,将slot与template对应起来
但是在2.6+的版本中,没有了slot方法,使用了v-slot,使用的时候必须放在template中使用
注:
- 父组件要添加子组件时,没有对应的插槽名,不会被填充进去
 - 子组件有多个默认插槽,父组件的内容全都会插进去(具名的作用)
 
都是通过父组件传递给子组件内容,然后子组件根据传递过来的内容来执行相应的行为
Vue的属性、事件、插槽的更多相关文章
- Vue 实例之事件 操作样式  (文本、事件、属性、表单、条件)指令
		
Vue 可以独立完成前后端分离式web项目的JavaScript框架 三大主流框架之一: Angular React Vue 先进的前端设计模式:MVVM 可以完全脱离服务器端,以前端代码复用的方式渲 ...
 - vue组件之事件
		
自定义事件 通过prop属性,父组件可以向子组件传递数据,而子组件的自定义事件就是用来将内部的数据报告给父组件的. <div id="app3"> <my-com ...
 - React对比Vue(03 事件的对比,传递参数对比,事件对象,ref获取DOM节点,表单事件,键盘事件,约束非约束组件等)
		
import React from 'react'; class Baby extends React.Component { constructor (props) { super(props) t ...
 - Vue基础-自定义事件的表单输入组件、自定义组件的 v-model
		
Vue 测试版本:Vue.js v2.5.13 学习 Vue 的自定义事件的表单输入组件,觉得文档讲的不太细致,所以这里再细化一下: 如果不用 v-model,代码应该是这样: <myinput ...
 - vue 计算属性 实例选项 生命周期
		
vue 计算属性: computed:{} 写在new vue()的属性,只要参与运算,数据不发生变化时,次计算只会执行一次,结果缓存,之后的计算会直接从缓存里去结果.如果其中的值发生变化(不管几个) ...
 - 第二章 Vue快速入门--9 使用v-on指令定义Vue中的事件
		
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
 - Vue_(基础)Vue中的事件
		
Vue.js中文文档 传送门 Vue@事件绑定 v-show:通过切换元素的display CSS属性实现显示隐藏: v-if:根据表达式的真假实现显示隐藏,如果隐藏,它绑定的元素都会销毁,显示的时候 ...
 - js里的发布订阅模式及vue里的事件订阅实现
		
发布订阅模式(观察者模式) 发布订阅模式的定义:它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 发布订阅模式在JS中最常见的就是DOM的事件绑定与触发 ...
 - vue for 绑定事件
		
vue for 绑定事件 <div id="pro_list" v-for="item in pro_list"> <div class=&q ...
 
随机推荐
- 《Head First 设计模式》:命令模式
			
正文 一.定义 命令模式将"请求"封装成对象(命令对象),以便使用不同的"请求"来参数化其他对象. 要点: 命令模式可将"动作的请求者"从& ...
 - centos环境 使用kubeadm快速安装k8s集群v1.16.2
			
全程使用root用户运行,宿主机需要连接外网 浏览一下官方kubeadm[有些镜像用不了] https://kubernetes.io/docs/setup/production-environmen ...
 - K8s集群verification error" while trying to verify candidate authority certificate "kubernetes"
			
问题内容 because of "crypto/rsa: verification error" while trying to verify candidate authorit ...
 - LeetCode 763划分字母区间 详解
			
题目详情 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段.返回一个表示每个字符串片段的长度的列表. 示例 1: 输入: S = "ab ...
 - 第一个Mybatis
			
第一个Mybatis 思路:搭建环境-->导入Mybatis-->编写代码-->测试 1.搭建环境 新建maven工程,配置xml文件 <?xml version=" ...
 - stat 命令家族(2)- 详解 pidstat
			
性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 对 Linux 任务的统计 ...
 - 关于Dapper实现读写分离的个人思考
			
概念相关 为了确保多线上环境数据库的稳定性和可用性,大部分情况下都使用了双机热备的技术.一般是一个主库+一个从库或者多个从库的结构,从库的数据来自于主库的同步.在此基础上我们可以通过数据库反向 ...
 - java中Math的常用方法整理
			
public class Demo{ public static void main(String args[]){ /** *Math.sqrt()//计算平方根 *Math.cbrt()//计算立 ...
 - Jmeter系列(56)- 详解 Weighted Switch Controller 权重控制器
			
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 它能分配其子项目(Child ...
 - MySQL数据库根据一个或多个字段查询重复数据
			
系统在开发测试过程中出现bug,比如并发操作没有处理好,数据库中往往会插入重复数据,这些脏数据经常会导致各种问题.bug可以修改,但是数据往往也要处理,处理SQL如下: 1.根据一个字段查找重复数据 ...