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>
  • 相关阅读:
    高并发量网站解决方案
    多服务器之间Session共享
    Mysql性能优化
    PHP memcache的使用教程
    select * 为什么不好? limit 1 为什么好? --mysql SQL语句优化
    八大排序对比
    /var/spool/postfix/maildrop 出现大量文件原因和解决办法
    sql根据某一个字段重复只取第一条数据
    postgreSQL 自增需要使用序列
    MySQL锁定状态查看相关命令
  • 原文地址:https://www.cnblogs.com/cxxb/p/14061940.html
Copyright © 2011-2022 走看看