首页 > 其他分享 >4.20

4.20

时间:2024-06-18 20:32:11浏览次数:19  
标签:fun console mixins 组件 num 4.20 hello

Vue中mixins的使用方法详解

 

vue中mixins的使用方法

官方解释:

混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

举个栗子:

定义一个混入对象:

解释    
export default {
    data(){
        return{
            num:1,
        }
    },
    created() {
        this.hello()
    },
    methods: {
        hello(){
            console.log('hello from mixin')
        },
    },
}

把混入对象混入到当前的组件中

解释    
<template>
  <div>
    <h1>使用mixins</h1>
    <div>组件1</div>
  </div>
</template>
​
<script>
import myMixins from "@/mixins/myMinixn";
export default {
  mixins: [myMixins],
  computed: {},
  created(){
  },
  methods: {},
};
</script>
<style>
</style>

mixins的特点:

1.方法和参数在各组件中不共享,虽然组件调用了mixins并将其属性合并到自身组件中来了,但是其属性只会被当前组件所识别并不会被共享,也就是其他组件无法从当前组件中获取到mixins中的数据和方法。

混合对象中的参数num

解释    
export default {
    data(){
        return{
            num:1,
        }
    },
    created() {
        this.hello()
    },
    methods: {
        hello(){
            console.log('hello from mixin')
        },
    },
}

组件1中的参数num进行+1的操作

解释    
<template>
  <div>
    <div>组件1里的num:{{num}}</div>
  </div>
</template>
​
<script>
import myMixins from "@/mixins/myMinixn";
export default {
  mixins: [myMixins],
  computed: {},
  created(){
    this.num++
  },
  methods: {},
};
</script>
<style>
</style>

组件2中的参数num未进行操作

解释    
<template>
  <div>
    <div>
      组件2里的num:{{num}}
    </div>
  </div>
</template>
​
<script>
import myMixins from "@/mixins/myMinixn";
export default {
  data() {
    return {};
  },
  mixins: [myMixins],
  methods: {},
};
</script>
​
<style>
</style>
​

输出结果为:组件1里的num:2

组件2里的num:1

组件1里改变了num里面的值,组件2中的num值还是混入对象里的初始值。

2.值为对象的选项,如methods,components等,选项会被合并,键冲突的组件会覆盖混入对象的

混入对象中的方法

解释    
export default {
    data(){
        return{
            num:1,
        }
    },
    created() {
        this.hello()
    },
    methods: {
        hello(){
            console.log('hello from mixin')
        },
        fun_one(){
            console.log('fun_one from mixin');
        },
        fun_two(){
            console.log('fun_two from mixin');
        }
    },
}

组件中的方法

解释    
<template>
  <div>
    <div>组件1里的num:{{num}}</div>
  </div>
</template>

<script>
import myMixins from "@/mixins/myMinixn";
export default {
  mixins: [myMixins],
  computed: {},
  created() {
    this.fun_self();
    this.fun_one();
    this.fun_two();
  },
  methods: {
    fun_self() {
      console.log("fun_self from template1");
    },
    fun_two() {
      console.log("fun_two from template1");
    },
  },
};
</script>
<style>
</style>

打印台的输出

1630649546(1).jpg

3 值为函数的选项,如created,mounted等,就会被合并调用,混合对象里的钩子函数在组件里的钩子函数之前调用

混入对象函数中的console

解释    
export default {
    data(){
        return{
            num:1,
        }
    },
    created() {
        console.log('hello from mixin');
    },
}

组件函数中的console

解释    
<template>
  <div>
    <div>组件1里的num:{{num}}</div>
  </div>
</template>

<script>
import myMixins from "@/mixins/myMinixn";
export default {
  mixins: [myMixins],
  computed: {},
  created() {
   console.log('hello from self');
  },
  methods: {
  },
};
</script>
<style>
</style>
复制代码

控制台中的打印:

image.png

与vuex的区别

vuex:用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之修改。

Mixins:可以定义共用的变量,在每个组件中使用,引入组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响。

与公共组件的区别

组件:在父组件中引入组件,相当于在父组件中给出一片独立的空间供子组件使用,然后根据props来传值,但本质上两者是相对独立的。

Mixins:则是在引入组件之后与组件中的对象和方法进行合并,相当于扩展了父组件的对象与方法,可以理解为形成了一个新的组件。

 

标签:fun,console,mixins,组件,num,4.20,hello
From: https://www.cnblogs.com/binglinll/p/18255076

相关文章

  • 4.20
    开始制作有关视频播放的内容<template><view><swiperclass="swiper"autoplay="false"vertical="true"interval="990000"@change="changeVideo"><swiper-itemv-for="(item,index)invideo_list&q......
  • GJOI 2024.4.20 总结
    Morning:T1小鸟Statement:在一个\(n\)的二维平面里,\(X\)轴的正方向是向右的,\(Y\)轴的正方向是向上的。在坐标系第一象限里,左下角的点的坐标是\((0,0)\),右上角的点的坐标是\((n-1,n-1)\)。所以本题我们考虑的整个平面总共有\(n\timesn\)个整点,每个整点都有一只小......
  • 2024.4.20 笔记
    2024.4.20笔记SP4354Snowflakes记录所有的雪花,判断是否存在两个雪花是相同的。由于数据量较大,需要\(O(n)\)的复杂度来查询雪花,考虑哈希表定义一个哈希值的转换方式,让不同的雪花哈希值不相同,相同的雪花的六个角一定是相同的\(6\)个值且相同的顺序排列,只不过起点在不同的角......
  • 算法模板 v1.10.4.20240325
    算法模板v1.1.1.20240115:之前历史版本已不可寻,创建第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”;删除“编译”-“手动开O优化”;修改“编译”-“CF模板”;删除“读写”;删除“图论”-“欧拉图”-“混合图”;删除“图论”-“可达性统计”;删除“数据类型”-“高精类”。......
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器
    BoxySVG是一款入门级矢量图形编辑器,具有全套基本功能、易于学习的选项卡式界面和可自定义的键盘快捷键。有了它,您可以轻松创建横幅、图标、按钮、图形、界面草图,甚至有趣的表情包。编辑器支持使用多种工具创建和编辑矢量对象,用颜色渐变装饰它们,用文本元素补充它们。元数据编辑功......
  • DNGuard 4.11 4.12 4.20等企业旗舰版 安装包下载
    dnguard4.504.404.304.204.124.11企业旗舰版安装包dng加密.net代码混淆代码保护软件加壳企业版很强大,推荐官网购买 DNGuardHVM-.Netobfuscatorandcodeprotectiontool服务过期,忘记版本更新的可以下载,另外也可以尝试使用demo版本加密体验一下dng,dng从4.X版......
  • lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/liuj
     glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于glibc囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而......
  • nvm安装node报错Get "https://nodejs.org/dist/latest/SHASUMS256.txt": dial tcp 104
    windows上通过nvm管理node版本,在本地安装了nvm后,通过nvm安装node,报错了,信息:Couldnotretrievehttps://nodejs.org/dist/latest/SHASUMS256.txt.Gethttps://nodejs.org/dist/latest/SHASUMS256.txt:dialtcp104.20.23.46:443:i/otimeout 有了这样的信息,我......
  • 4.20今日总结
    Pyqt5信号与槽#-*-coding:utf-8-*-#Formimplementationgeneratedfromreadinguifile'signal.ui'##Createdby:PyQt5UIcodegenerator5.11.3##WARNING!Allchangesmadeinthisfilewillbelost!importsysfromPyQt5importQtCore,QtGui,QtW......
  • GLIBCXX_3.4.20 not found 问题解决【Unable to load shared library 'lib**.so'】
    前因:问题:在调用别人的so时,出现了如下问题【GLIBCXX_3.4.20notfound】Unabletoloadsharedlibrary'libdbc.so'oroneofitsdependencies.Inordertohelpdiagnoseloadingproblems,considersettingtheLD_DEBUGenvironmentvariable:/lib64/libstdc++.so.6:v......