当前位置:网站首页>Advanced Vue component pattern (3)
Advanced Vue component pattern (3)
2020-11-06 01:23:00 【:::::::】
03 Use mixin To enhance Vue Components
The goal is
In the previous article , Although we will toggle
Components are divided into toggle-button
、toggle-on
and toggle-off
Three sub components , And everything works well , But there are some problems in it :
-
toggle
The internal state and method of a component can only be shared with these three subcomponents , We expect that third-party components can also share these States and methods - inject We wrote the injection logic three times , If you can , We would prefer to declare only once (DRY principle )
- inject The injection logic of is currently hard coded , In some cases , We may expect dynamic configuration
If you are familiar with react The reader here may immediately think of HOC( High order component ) The concept of , And it's also react One of the most common patterns , This mode can improve react The degree of reuse and flexibility of components . stay vue in , Do we also have some means or features to improve the reusability and flexibility of components ? The answer, of course, is yes , That's it mixin.
Realization
About mixin Own knowledge , I won't go over it here , Unfamiliar readers can go to official documents to understand . We have made a declaration called toggleMixin Of mixin To pull out the public injection logic , as follows :
export const withToggleMixin = { inject: { toggleComp: "toggleComp" } };
after , Whenever you need to inject toggle
When a component provides a dependency , Just blend into the present mixin, as follows :
mixins: [withToggleMixin]
If the logic of Injection , Let's add some flexibility , For example, you want to freely declare that you want to inject dependencies key when , We can borrow from HOC The concept of , Declare a higher order mixin( Can be abbreviated HOM ?? A skin , Very happy ), as follows :
export function withToggle(parentCompName = "toggleComp") { return { inject: { [parentCompName]: "toggleComp" } }; }
This HOC mixin It can be used as follows :
mixins: [withToggle("toggle")]
So in the current component , call toggle Component related states and methods , It is no longer this.toggleComp
, It is this.toggle
.
results
By implementing toggleMixin, We managed to pull the logic out of the injection , So every time you need to share toggle
When the state and method of the component , Mix in the mixin that will do . This solves the problem that third-party components cannot share their states and methods , In the online instance code , I implemented two third-party components , Namely custom-button
and custom-status-indicator
, The former is a custom switch , Use withToggleMixin To mix in the injection logic , The latter is a custom status indicator , Use withToggle Higher order functions to mix in injection logic .
You can see the implementation code and demonstration of this component in the following link :
- sandbox: The online demo
- github: part-3
summary
mixin As a distribution Vue A very flexible way to reuse functions in components , It can be used in many scenes , Especially in some components dealing with public logic , For example, notice 、 Form error prompt, etc , This mode is especially useful .
Catalog
github gist Click preview
Participation of this paper Tencent cloud media sharing plan , You are welcome to join us , share .
版权声明
本文为[:::::::]所创,转载请带上原文链接,感谢
边栏推荐
- 采购供应商系统是什么?采购供应商管理平台解决方案
- 合约交易系统开发|智能合约交易平台搭建
- Not long after graduation, he earned 20000 yuan from private work!
- Word segmentation, naming subject recognition, part of speech and grammatical analysis in natural language processing
- Classical dynamic programming: complete knapsack problem
- Can't be asked again! Reentrantlock source code, drawing a look together!
- 至联云分享:IPFS/Filecoin值不值得投资?
- axios学习笔记(二):轻松弄懂XHR的使用及如何封装简易axios
- Just now, I popularized two unique skills of login to Xuemei
- 每个前端工程师都应该懂的前端性能优化总结:
猜你喜欢
速看!互联网、电商离线大数据分析最佳实践!(附网盘链接)
TRON智能钱包PHP开发包【零TRX归集】
教你轻松搞懂vue-codemirror的基本用法:主要实现代码编辑、验证提示、代码格式化
一篇文章带你了解CSS3图片边框
PHPSHE 短信插件说明
Subordination judgment in structured data
Do not understand UML class diagram? Take a look at this edition of rural love class diagram, a learn!
ES6学习笔记(五):轻松了解ES6的内置扩展对象
Summary of common algorithms of binary tree
Tool class under JUC package, its name is locksupport! Did you make it?
随机推荐
Working principle of gradient descent algorithm in machine learning
I've been rejected by the product manager. Why don't you know
Grouping operation aligned with specified datum
Deep understanding of common methods of JS array
Subordination judgment in structured data
Installing the consult cluster
向北京集结!OpenI/O 2020启智开发者大会进入倒计时
Character string and memory operation function in C language
6.1.2 handlermapping mapping processor (2) (in-depth analysis of SSM and project practice)
Summary of common string algorithms
Python自动化测试学习哪些知识?
[JMeter] two ways to realize interface Association: regular representation extractor and JSON extractor
一篇文章带你了解CSS3圆角知识
数据产品不就是报表吗?大错特错!这分类里有大学问
5.5 controlleradvice notes - SSM in depth analysis and project practice
Keyboard entry lottery random draw
一篇文章教会你使用HTML5 SVG 标签
深度揭祕垃圾回收底層,這次讓你徹底弄懂她
Examples of unconventional aggregation
Natural language processing - BM25 commonly used in search