前言

因为最近面试了二、三十个人,发现大部分都还是只是停留在 Vue 文档的教程。有部分连教程这部分的文档也没看全。
所以稍微写一点,让新上手的 Vuer 多了解 Vue 文档的其他更需要关注的点。

因为 Vue 文档已经是个很成熟的文档,并且实现的 demo 简洁明了,我就不具体写实现代码了,文内只会贴需要关注的知识的文档地址

v-model

自定义组件上使用 v-model

一般可能会问怎么在自己写的组件上实现 v-model。因为一些同学用多了组件库,用的心安理得,完全不去想为什么组件库可以用 v-model 做各种双向绑定。问到如何自己写的时候直接懵逼了,所以这个是一定要会的。如果能在回答一下子组件可以用 model 属性,让 v-model 不再需要对 value 这个 props 做双向绑定就更好了, 说明你文档看的仔细。

其实 v-model 就是 prop + $emit 的语法糖, 可以拆成 value 和 @input

所以记住拉,如果是简单的子组件要同步数据到父组件,不要再傻傻的 prop + $emit, 在父组件里修改数据了。

本章相关文档链接:

多个属性的双向绑定呢

如果你会用 v-model,那么就要知道 v-model 只能绑定一个属性,如果父组件有多个需要和子组件的做双向绑定的属性怎么办?你可以会想到用对象或者数组。但是这可以会导致操作过于复杂。然而可以用 .async 修饰符完成。

本章相关文档链接:

实例属性

attrs && props

这是个不常用的属性,但是在高级用法里非常常见。比如我把组件库里的多个组件封装一层,成为一个大的业务组件。我用这个大组件的时候需要灵活控制里面组件库的 prop,将参数透传到组件库的组件里。示例如下:


// my-search.vue
<template>
<el-input v-model='myValue'/>
<el-button>搜索</el-button>
</template>

// page.vue
<template>
<my-search placeholder='请输入搜索'></my-search>
</template>

有的小伙伴回答在 my-search 里定义这个 prop ,然后传到 el-input 里。然而他有 20 多个 prop,这样太麻烦了。

有聪明的小伙伴说传个对象进去,然而最后还是没解决怎么把这个对象绑定到 el-input 上。答案已经很接近了。

其实 Vue 已经帮我们把这个对象弄好了,我们只要直接在 el-input 组件上写 v-bind="$attrs"

别忘了 v-bind 可以传对象的啊!!

本章相关文档链接:

listeners

上面搞定了 props 的透传,别忘了还有事件的透传。同理 Vue 已经帮我们弄好了。v-bind="$listeners"

本章相关文档链接:

常用的实例属性

其他我们比较常用的就是 $refs$parent$children$el

不常用的实例属性

$slots$scopedSlots。slots 可以判断父组件里道理传了哪些 slot 进来。其他的大家就去官网文档里看把。

先到这

到这里应该大家能了解到,除了 Vue 文档除了教程章节,API 章节也至关重要。我觉得熟读 Vue 文档,Vue 深度就能达到一定程度。至少面试问 Vue 的话,如果连 API 都不熟,会比较扣分。如果需要更深入了解就去看源码,看优秀的组件库的实现。。

其实我有很多也是从组件库里学到的~ 建议有空多看看你经常使用的组件库源码,至少比 Vue 源码简单多了。。而且更贴合我们的使用场景

来源:https://segmentfault.com/a/1190000017483791

Vue 组件实例属性的使用的更多相关文章

  1. Vue组件实例间的直接访问

    前面的话 有时候需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件. 在组件实例中,Vue提供了相应的属性,包括$parent.$children.$refs和$root,这些属性都挂载在 ...

  2. vue组件之属性Props

    组件的属性和事件 父子组件之间的通信 父子组件之间的通信就是 props down,events up,父组件通过 属性props向下传递数据给子组件,子组件通过 事件events 给父组件发送消息. ...

  3. 简述Vue的实例属性、实例方法

    1.实例属性 组件树访问 $parent -----> 用来访问当前组件实例的父实例: $root -----> 用来访问当前组件树的根实例,如果当前组件没有父实例,则$root表示当前组 ...

  4. Vue_(组件)实例属性

    Vue实例属性与方法中文文档 传送门   Vue实例属性:vue实例直接调用的属性 Learn 一.vm.$data:获取属性 二.vm.$el:获取实例挂载的元素 三.vm.$options:获取自 ...

  5. vue组件实例的生命周期

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue组件is属性详解

    查看官网对is属性的讲解,请移步:vue.js 本文参考资料 在vue.js组件教程的一开始提及到了is特性 下面是官网对is属性使用的说明: 组件功能是vue项目的一大特色.组件可以扩展html元素 ...

  7. 为什么vue组件的属性,有的需要加冒号“:”,有的不用?

    https://segmentfault.com/q/1010000010929963/a-1020000010930077 <tab :line-width="2" act ...

  8. 在被vue组件引用的 js 文件里获取组件实例this

    思路: 通过调用函数 把 组件实例this  传递 到 被应用的 js文件里 实例: 文件结构 在SendThis.vue 文件中引用 了modalConfig.js import modalConf ...

  9. vue实例属性(vm.$els)

    不需要表达式 参数: id(必需) 用法: 为 DOM 元素注册一个索引,方便通过所属实例的 $els 访问这个元素. 注意: 因为 HTML 不区分大小写,camelCase 名字比如 v-el:s ...

随机推荐

  1. [转载][FPGA]Quartus代码保护-生成网表文件

    0. 简介 当项目过程中,不想给甲方源码时,该如何?我们可以用网表文件qxp或者vqm对资源进行保护. 下面讲解这两个文件的具体生成步骤: 1. 基本概念 QuartusII的qxp文件为Quartu ...

  2. OS | Process

    linux多进程 1. fork()创建进程,创建一份父进程的拷贝:在父进程中返回的是子进程id,在子进程中返回的是0:失败时返回-1: 2. fork()经常和exec()结合,exec() 覆盖了 ...

  3. 51Nod 约数之和

                              1220 约数之和                                  题目来源: Project Euler 基准时间限制:3 秒 ...

  4. SSM框架CRUD小案例

    1.数据库准备 部门tbl_dept 员工tbl_emp 建立员工和部门的外键 2.在IDEA创建SSM项目环境 2.1配置Web模块 最上面的图是错误示范,注意!!! 在Tomcat配置了项目路径, ...

  5. Mybatis逆向生成使用扩展类

    1.背景介绍 用的mybatis自动生成的插件,然而每次更改数据库的时候重新生成需要替换原有的mapper.xml文件,都要把之前业务相关的sql重新写一遍,感觉十分麻烦,就想着把自动生成的作为一个基 ...

  6. SpringBoot 整合 RabbitMQ(包含三种消息确认机制以及消费端限流)

    目录 说明 生产端 消费端 说明 本文 SpringBoot 与 RabbitMQ 进行整合的时候,包含了三种消息的确认模式,如果查询详细的确认模式设置,请阅读:RabbitMQ的三种消息确认模式 同 ...

  7. 微信小程序 压缩图片并上传

    转自https://segmentfault.com/q/1010000012507519 wxml写入 <view bindtap='uploadImg'>上传</view> ...

  8. windows10 安装 mysql 5.6 教程

    首先是下载 mysql-installer-community-5.6.14.0.msi ,大家可以到 mysql 官方网去下载. win10的安全机制比较严格,安装前最好到<设置>--& ...

  9. 3D投影

    3D投影方式的几大种类: 1.快门式 主动快门式即时分式,不过我们通常用前面的叫法,快门式3D眼镜(3D Shutter Glasses,也称作LC shutter glassesor active  ...

  10. 第七讲_图像描述(图说)Image Captioning

    第七讲_图像描述(图说)Image Captioning 本章结构 递归神经网络 时序后向传播(BPTT) 朴素Vanilla-RNN 基本模型 用sigmoid存在严重的梯度消失 LSTM长短时记忆 ...