当前位置:网站首页>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 :
-
toggleThe 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 .
版权声明
本文为[:::::::]所创,转载请带上原文链接,感谢
边栏推荐
- I'm afraid that the spread sequence calculation of arbitrage strategy is not as simple as you think
- OPTIMIZER_ Trace details
- 中小微企业选择共享办公室怎么样?
- This article will introduce you to jest unit test
- (2)ASP.NET Core3.1 Ocelot路由
- Not long after graduation, he earned 20000 yuan from private work!
- Polkadot series (2) -- detailed explanation of mixed consensus
- CCR炒币机器人:“比特币”数字货币的大佬,你不得不了解的知识
- 多机器人行情共享解决方案
- 教你轻松搞懂vue-codemirror的基本用法:主要实现代码编辑、验证提示、代码格式化
猜你喜欢

How to encapsulate distributed locks more elegantly

Character string and memory operation function in C language

人工智能学什么课程?它将替代人类工作?

快快使用ModelArts,零基础小白也能玩转AI!

ES6学习笔记(二):教你玩转类的继承和类的对象

从海外进军中国,Rancher要执容器云市场牛耳 | 爱分析调研

Grouping operation aligned with specified datum

PHPSHE 短信插件说明

This article will introduce you to jest unit test

前端工程师需要懂的前端面试题(c s s方面)总结(二)
随机推荐
I think it is necessary to write a general idempotent component
[event center azure event hub] interpretation of error information found in event hub logs
CCR炒币机器人:“比特币”数字货币的大佬,你不得不了解的知识
多机器人行情共享解决方案
Natural language processing - BM25 commonly used in search
Do not understand UML class diagram? Take a look at this edition of rural love class diagram, a learn!
加速「全民直播」洪流,如何攻克延时、卡顿、高并发难题?
Elasticsearch 第六篇:聚合統計查詢
每个前端工程师都应该懂的前端性能优化总结:
How do the general bottom buried points do?
What problems can clean architecture solve? - jbogard
Brief introduction and advantages and disadvantages of deepwalk model
html
Working principle of gradient descent algorithm in machine learning
Keyboard entry lottery random draw
Flink的DataSource三部曲之二:内置connector
大数据应用的重要性体现在方方面面
Examples of unconventional aggregation
Don't go! Here is a note: picture and text to explain AQS, let's have a look at the source code of AQS (long text)
hadoop 命令总结