Vue 组件实例属性的使用

前言

因为最近面试了二、三十个人,发现大部分都还是只是停留在 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
  • model

多个属性的双向绑定呢

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

本章相关文档链接:

  • .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 可以传对象的啊!!

本章相关文档链接:

  • $attrs
  • $props
  • v-bind

listeners

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

本章相关文档链接:

  • $listeners
  • v-on

常用的实例属性

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

不常用的实例属性

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

先到这

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

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

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

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

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

相关文章

C# 读取硬盘信息类

在编写工具检查硬盘信息时,总结常用到的类: Win32_DiskDrive 这个用了检查整个硬盘的信息,如果电脑只有一个硬盘,那只显示一条信息。参考如下代码,AddTextBox为自定义显示函数。(MSDN class 查询&#xff1…

95后沪漂女孩深陷“狠”且“卷”职场,向上思维,永不过时!

hi,这里是桑小榆。最近和一个伙伴oncall了很久,对我的文章以及思想转变产生了很大的共鸣,她向我分享了一些职场经历还有成长经历等,她的这些经历也让我引发了一定的思考。光光,最近刚升任了部门主管,对于当…

PHP:6种GET和POST请求发送方法

在i94web博客中,我试过了畅言和多说两种社会化评论框,后来还是抛弃了畅言,不安全。 无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入本地数据库。对于多说,请求的格式如下: // 获取…

解决Ubuntu 16.04下提示boot分区空间不足的办法

原文地址: http://www.jb51.net/article/106976.htm   https://www.linuxidc.com/Linux/2015-09/123227.htm 因为linux内核一直在更新,更新后,旧的内核就不在使用,但旧的内核文件还在boot里面,占据着空间,更新几次过…

3d镜头 适配_您是否应该将镜头适配器与无反光镜相机一起使用?

3d镜头 适配Canon佳能Mirrorless cameras aren’t the future, they’re the present. If you’re switching from an older DSLR, though, the obvious thing to do is just buy an adapter so you can keep using your old gear. 无反光镜相机不是未来,而是现在。…

C#弹窗提示并自动关闭方法

刚学C#不久,就写个工具,总结写一个简便自定义提示窗口方法,并自动关闭。 1.在项目添加windows form(非user control),命名为Form_wait。 2.在Form_wait,加入需要控件与一个定时器timer1。 数字10为计时显…

dotNET 7:最小 API 使用

最小 API 并不是在 .NET 7 中才加入的,记得应该是在 .NET 6 中就已经提供,只是对我来说,到现在才开始使用。创建一个最小 API在 VS 2022 中创建 WebAPI 项目,不勾选使用控制器,创建出来的就是最小 API :不勾…

Taro小程序采坑记

Taro,京东凹凸实验室出品的适配多端的一个框架, Taro 是一套遵循 React 语法规范的 多端开发 解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的…

struts入门

struts工作过程: 反射代码: Class clazz Class.forName("action全路径"); Method m clazz.getMethod("execute"); Object o m.invoke(); package标签: 转发:地址栏不变 修改struts默认常量值: 常…

《Android应用开发攻略》——2.14 备份Android应用程序数据

2.14 备份Android应用程序数据 Pratik Rupwal2.14.1 问题当用户恢复出厂设置或者改用新的Android设备时,应用程序丢失存储数据或者应用程序设置。2.14.2 解决方案Android的Backup Manager(备份管理器)能够在应用程序重新安装时自动恢复备份数…

C#程序开机启动与获取程序启动路径

写windows工具时,要进行电源管理,需要重启与开关机OS,这样工具就需要自动启动。查了网上很多资料,修改注册列表就可以。 但是,复制几个网站的代码并自己修改都发现不行,最后发现脚本之家这段代码才成功&am…

wpf office 菜单_如何带回Office 2007中的旧菜单

wpf office 菜单Using the new Ribbon feature in Office 2007 takes time to learn…time you don’t have because projects are stacking up. Today we will look at UBitMenu, a utility that puts the familiar Office 2003 menu into the 2007 ribbon. 使用Office 2007中…

Swagger UI 仅为用户暴露已授权终结点

前言当需要在生产环境中提供 Swagger UI 时,我们可以通过身份验证,控制只有授权用户才能访问 Swagger UI 页面。但是我们希望更进一步,每个用户只能看到授权给他的终结点,而不会暴露其他未授权终结点信息。比如, API 提…

php实现约瑟夫环

function king($high,$size){ $monkey range(1, $high); $i 0 ; while (count($monkey)>1) { $i; $head array_shift($monkey); if(($i % $size) ! 0){ array_push($monkey,$head); } } return $monkey[0];} var_dump(king(10,3));转载于:https://www.cnblogs.com/lijint…

微软正式发布Azure Storage上的静态网站

微软正式宣布了Azure Storage上的静态网站,提供了从托管在Azure Storage上的HTML、CSS和JavaScript文件提供内容的能力。静态网站包含内容固定的Web页面,同时仍然允许利用JavaScript等客户端代码来创建丰富的用户体验。 有了这个新功能,继用于…

帝国国王科技大学上机题解(二)

1.找到字符串中出现次数最少的字符 题目描写叙述 给定一个字符串(长度小于50) 找到该字符串出现次数最少的字符 假设有两个字符出现次数同样,并且均出现最少。那么ASCII码小的字符优先 输入 输入为一行字符串。不含空格 输出 输出出现次数最少…

如何在计算机上阅读漫画书

Reading and organizing a comic book collection on your computer is efficient and a lot of fun. Today we will look at a couple of free applications that allow you to read your favorite comic books on your computer. 在计算机上阅读和组织漫画集非常有效&#xf…

C# WinForm 自启动/模拟开机自动启动

遇到重写启动步骤,C#调试时显得比较折腾,既要等待重启,又要保存当前文件。 让程序自动重启模拟这样电脑重启步骤,显得非常方便。在http://bbs.csdn.net/topics/100187453找到下面代码,直接使用。 ProcessStartInfo p…

工业互联网平台实现路径

我国工业互联网平台建设虽然仍处于产业培育期,但是工业互联网平台也得到了初期的快速发展,得益于平台企业的积极投入和各地工业和信息化主管部门的大力推动,从平台建设推广的经验来看,下面谈一下个人认为传统制造企业平台战略比较…

Javascript基础之-Promise

转载自: http://www.lht.ren/article/3/ Promise是什么呢?根据ecma-262的定义: Promise是一个被用于延时计算的最终结果的占位符 (A Promise is an object that is used as a placeholder for the eventual results of a deferred (and possi…