• 全局混入mixins 阅读代码时未看到数据从哪里来?全局混入(新建组件文件(复用)导入全局注册))


    mixins原理: 挂载到原型上面去了
    注意:优先级、函数 、数据变量、
    1.混入也可以进行全局注册。使用时格外小心!一旦使用全局混入,它将影响每一个之后创建的 Vue 实例。使用恰当时,这可以用来为自定义选项注入处理逻辑。
    2.请谨慎使用全局混入,因为它会影响每个单独创建的 Vue 实例 (包括第三方组件)。大多数情况下,只应当应用于自定义选项,推荐将其作为插件发布,以避免重复应用混入。
    **理解:Mixins:则是在引入组件之后与组件中的对象和方法进行合并,相当于扩展了父组件的对象与方法,可以理解为形成了一个新的组件。
    混入 (mixins):是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。
    **
    参考vue.js

    疑问?

    可以列举下应用场景吗 比如我有个项目 所有列表页都有导出功能合不合适用mixins?
    在mixins里面写一个导出的公共方法,接收一个导出地址的参数,在你每个列表页调用mixins里面的导出方法就可以了(公共的方法或者数据其他的都可以用)逻辑组件复用

    然后通过mixins:['文件名']来使用就可以了

    局部混入使用

    1.新建src/mixins/tabBar.js
    示例:购物车底部显示

    import { mapGetters } from 'vuex'
    // 组件逻辑复用
    // 导出一个 mixin 对象
    /* 注意:除了要在 cart.vue 页面中设置购物车的数字徽标,还需要在其它 3 个 tabBar 页面中,为购物车设置数字徽标。
    此时可以使用 Vue 提供的 mixins 特性,提高代码的可维护性。 */
    export default {
      computed: {
        ...mapGetters('cart', ['total']),
      },
     // 方法二:
     onShow(){
       console.log(this.total,4444);
       uni.setTabBarBadge({
         index: 2,
         text: this.total+''
       })
     },
     //方法一:
     // onShow() {
     //   this.setBatge()
     // },
     // methods:{
     //   setBatge(){
     //     uni.setTabBarBadge({
     //       index: 2,
     //       text: this.total+''
     //     })
     //   }
     // },
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    2.页面直接使用

    // 导入自己封装的 mixin 模块
      import tarBar from '../../mixins/tabBar.js'
      export default {
         // 将 badgeMix 混入到当前的页面中进行使用
       mixins:[tarBar],//组件混入  组件逻辑复用    
       // 优先级    封装的比自己优先级低(行内大于样式里面的)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    全局混入

    1.新建src/mixins/tabBar.js

    import { mapGetters } from 'vuex'
    // 组件逻辑复用
    // 导出一个 mixin 对象
    /* 注意:除了要在 cart.vue 页面中设置购物车的数字徽标,还需要在其它 3 个 tabBar 页面中,为购物车设置数字徽标。
    此时可以使用 Vue 提供的 mixins 特性,提高代码的可维护性。 */
    export default {
      computed: {
        ...mapGetters('cart', ['total']),
      },
     // 方法二:
     onShow(){
       console.log(this.total,4444);
       uni.setTabBarBadge({
         index: 2,
         text: this.total+''
       })
     },
     //方法一:
     // onShow() {
     //   this.setBatge()
     // },
     // methods:{
     //   setBatge(){
     //     uni.setTabBarBadge({
     //       index: 2,
     //       text: this.total+''
     //     })
     //   }
     // },
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    2.main.js

    import mixin from "@/mixins";
    Vue.mixin(mixin);
    
    • 1
    • 2
  • 相关阅读:
    Go — 相关依赖对应的exe
    【RocketMQ】NameServer总结
    C语言练习8(巩固提升)
    StripedFly恶意软件框架感染了100万台Windows和Linux主机
    Git分支设计原则&分支常用操作练习
    Python数据结构——基础数据结构
    Redis的哨兵机制,一文全解
    解决升级docker导致的k8s崩溃问题
    图片拼接:如何将一堆杂乱无章的图片变成一个有意义的、协调的整体
    跨境电商必读:什么是社交媒体营销?
  • 原文地址:https://blog.csdn.net/qq_43944285/article/details/125467499