File tree Expand file tree Collapse file tree 1 file changed +54
-1
lines changed Expand file tree Collapse file tree 1 file changed +54
-1
lines changed Original file line number Diff line number Diff line change 77</p >
88
99### 其它语言
10+
1011* [ 英文] ( https://pablohpsilva.github.io/vuejs-component-style-guide/#/ )
1112* [ 葡萄牙语] ( https://pablohpsilva.github.io/vuejs-component-style-guide/#/portuguese )
1213* [ 日本] ( https://pablohpsilva.github.io/vuejs-component-style-guide/#/japanese )
@@ -288,7 +289,9 @@ export default {
288289 export default {
289290 // 不要忘记了 name 属性
290291 name: ' RangeSlider' ,
291- // 组合其它组件
292+ // 使用组件 mixins 共享通用功能
293+ mixins: [],
294+ // 组成新的组件
292295 extends: {},
293296 // 组件属性、变量
294297 props: {
@@ -616,6 +619,56 @@ Vue.js 是一个基于组件的框架。如果你不知道何时创建组件可
616619
617620---
618621
622+ ## 尽可能使用 mixins
623+
624+ ### 为什么?
625+
626+ Mixins 封装可重用的代码,避免了重复。如果两个组件共享有相同的功能,则可以使用 mixin。通过 mixin,你可以专注于单个组件的任务和抽象的通用代码。这有助于更好地维护你的应用程序。
627+
628+ ### 怎么做?
629+
630+ 假设你有一个移动端和桌面端的菜单组件,它们共享一些功能。我们可以抽象出这两个组件的核心功能到一个 mixin 中,例如:
631+
632+ ``` js
633+ const MenuMixin = {
634+ data () {
635+ return {
636+ language: ' EN'
637+ }
638+ },
639+
640+ methods: {
641+ changeLanguage () {
642+ if (this .language === ' DE' ) this .$set (this , ' language' , ' EN' )
643+ if (this .language === ' EN' ) this .$set (this , ' language' , ' DE' )
644+ }
645+ }
646+ }
647+
648+ export default MenuMixin
649+ ```
650+ 要使用 mixin,只需将其导入到两个组件中(我只展示移动组件)。
651+
652+ ``` html
653+ <template >
654+ <ul class =" mobile" >
655+ <li @click =" changeLanguage" >Change language</li >
656+ </ul >
657+ </template >
658+
659+ <script >
660+ import MenuMixin from ' ./MenuMixin'
661+
662+ export default {
663+ mixins: [MenuMixin]
664+ }
665+ </script >
666+ ```
667+
668+ [ ↑ 回到目录] ( #目录 )
669+
670+ ---
671+
619672### 如何提供帮助?
620673
621674Fork 和提 PR 以帮助我们改进或者可以给我们提 [ Issue] ( https://github.com/pablohpsilva/vuejs-component-style-guide/issues/new ) 。
You can’t perform that action at this time.
0 commit comments