zoukankan      html  css  js  c++  java
  • vue mixin和extends的使用

    全局使用场景:所有子组件内部都与要某一个state、computed或者某个方法时,甚至在所有子组件某个生命周期内都需要执行一个一样功能时,都可用全局mixin;

    相同生命周期函数会先运行mixin内部的钩子函数,然后再运行组件内部的钩子函数,对于state、computed或者某个方法时,组件内部的会覆盖mixin内部的定义的
    全局注入步骤:
      首先新建一个mixin.js文件:

    import { mapGetters } from 'vuex'
    
    // export const Mixin = {
    export default{
      data(){
        return {
            navChildStatusOne: 1
        }
      },
      computed: {
        ...mapGetters([
          'navChildStatus'
        ]),
        pageMainLeft() {
          return this.navChildStatus ? '' : 'page-main-left'
        }
      },
      methods: {
          getUserlist(){
              console.log('from Mixin')
          }
      }
    }

    然后再mian.js页面引入

    import mixins from '@/common/js/mixin'

    然后注册

    Vue.mixin(mixins)

    使用: 
    在所有组件内部都可调取内部的方法和状态:

    mounted() {
        this.navChildStatusOne
        this.getUserlist()
    },

    引用顺序同全局一样

    局部注入步骤:
      首先定义一个混入对象,然后混入对象混入到当前的组件中:
      

    import mixins from '@/common/js/mixin'
        export default{
                  mixins: [mixins],
            }

    extends: 相当于复制了一个组件,在组件内部可以定义新的状态和方法,组件内部同名的方法或者state会覆盖mixins里面的

    <script>
        import dtl from './question-dtl.vue'
        export default{
            name: 'extendsss',
            extends: dtl,
            mounted(){
                this.breadcrumbs = [
                    { name: '试题详情-试题详情' }
                ]
                this.GetQuestionBasicsInfo()
                this.GetQuestionInfo()
            },
            methods: {
                GetQuestionBasicsInfo(){
                    
                },
                GetQuestionInfo(){
                    
                }
            }
        }
    </script>
  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/cxxb/p/14061940.html
Copyright © 2011-2022 走看看