vue2混入实现、mixin、methods

这篇具有很好参考价值的文章主要介绍了vue2混入实现、mixin、methods。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1、概念

mixin混入提供了一种非常灵活的方式来分发vue组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混合进入该组件本身的选项。


2、功能

混入可以将多个组件中的公共配置提取成一个混入对象,这样就可以实现代码复用。


3、语法

混入和过滤器等配置类似,有全局混入和局部混入两种使用方式。

4、代码实现

第一步

src文件夹下新建名为mixin文件夹,在mixin文件夹下新建名为index的点.js文件。

第二步

index文件中写入以下代码,不仅仅是以下代码,组件中的生命周期和方法都可以在此文件中写入。

export default {
	data() {
		return {
			mixinData: {
				name: '混入的data数据',
				value: 86
			}
		};
	},
	created() {
		console.log('混入的created生命周期');
	},
	
	methods: {
		mixinFn() {
			console.log('混入方法');
		}
	}
};

4.1、全局混入

实现混入

全局注册一个混入,影响注册之后所有创建的每个vue实例。使用混入可以向组件注入自定义的行为,但是不推荐在应用代码中使用。在main.js中全局混入,其中参数mixin是一个对象,里面包含混入的所有组件配置。有时候会打印多次混入内容,这是因为使用了多次嵌套组件,每一个组件都会加载一次created方法。因此mixin在实际生产环境中不建议使用全局混入。

import mixin from './mixin/index.js';

Vue.mixin(mixin);

使用全局混入

<template>
	<div>
		<button @click="mixinFn">点我打印信息</button>
		<div>{{ mixinData.name }}</div>
		<div>{{ mixinData.value }}</div>
	</div>
</template>
export default {
	name: 'inexView',
	data() {
		return { }
	}
}

4.2、局部混入

将定义好的混入对象引入要用的组件。它和全局混入的方式不同,不需要在main.js中引入。同全局混入一样,其中参数mixin是一个对象,里面包含混入的所有组件配置。在组件中引入使用即可。

<template>
	<div>
		<button @click="mixinFn">点我打印信息</button>
		<div>{{ mixinData.name }}</div>
		<div>{{ mixinData.value }}</div>
	</div>
</template>
import mixin from '@/mixin/index.js';

export default {
	name: 'inexView',
	mixins: [mixin],
	data() {
		return { }
	}
}

5、混入规则

规则一

数据对象内部,如果是基本类型的变量,那么组件中变量会覆盖混入中定义的变量。如果是引用数据类型,在内部会进行递归合并,并在发生冲突时以组件数据优先。


规则二

生命周期钩子冲突时,会执行两遍,先执行混入中的生命周,然后执行组件中的生命周期。混入配置同上。


规则三

值为对象的其他配置,比如methods等,会合并成一个对象,然后取组件中的键值执行。混入配置同上。文章来源地址https://www.toymoban.com/news/detail-424439.html

到了这里,关于vue2混入实现、mixin、methods的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp开发中基于vue的混入(mixin) 实现微信小程序全局【发送给朋友】、【分享到朋友圈】、【复制链接】

    一、在开发微信小程序的时候,发现【发送给朋友】、【分享到朋友圈】、【复制链接】功能,灰色不可用。 很常见的功能,但是这几个功能,并不是你项目建起来了就有的。 1.【发送给朋友】使用 onShareAppMessage 这个方法 如果你的小程序,发现他的【转发给朋友】的按钮时

    2024年01月17日
    浏览(38)
  • Vue.js 中的 mixin 和混入有什么区别?

    在 Vue.js 中,mixin 和混入是两个常用的概念,它们可以帮助我们实现代码的复用和组件间的通信。虽然它们的名字很相似,但它们的作用和用法有所不同。本文将介绍 mixin 和混入的区别,并通过代码示例来说明它们的用法。 mixin 是一种在 Vue.js 中实现代码复用的方式。它类似

    2024年02月09日
    浏览(28)
  • Vue(标签属性:ref、配置项:props、混入mixin、插件、样式属性:scroped)

    前面提及到了标签属性:keys 这里将了解ref:打标识 正常布置脚手架并创建入口文件main.js引入组件 给一个按钮获取上方的dom的方法,方法中使用什么进行获取dom元素 是使用获取id方法给标签设置id,直接操作dom?  错误❌ 既然原生js可以给dom添加id,那么Vue也有类似的标识方

    2024年02月02日
    浏览(21)
  • Vue2-配置脚手架、分析脚手架、render函数、ref属性、props配置项、mixin配置项、scoped样式、插件

    🥔:总有一段付出了没有回报的日子 是在扎根 更多Vue知识请点击——Vue.js Vue CLI(Vue Command Line Interface)Vue脚手架,Vue官方提供的标准化开发工具(开发平台) 安装node.js——可以查看此教程 第一步:输入命令npm config set registry=http://registry.npm.taobao.org 配置镜像站,全局安装

    2024年02月12日
    浏览(39)
  • 前端学习---vue2--选项/数据--data-computed-watch-methods-props

    写在前面: vue提供了很多数据相关的。 简单的说就是进行双向绑定的区域。 vue实例的数据对象,会把data的数据转换成getter和setter,从而可以进行响应式的变化, vue实例创建后,可以通过vm.$data.x获取data里面的x,但同时vue实例也代理了其中的对象,所以我们一般使用简单的

    2024年02月14日
    浏览(30)
  • 【Vue2从入门到精通】Vue监听器watch,计算属性computed,方法methods的区别及使用场景

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:vue2从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用

    2023年04月15日
    浏览(32)
  • Vue2向Vue3过度Vuex核心概念mutations

    1.定义mutations 2.格式说明 mutations是一个对象,对象中存放修改state的方法 3.组件中提交 mutations 4.练习 1.在mutations中定义个点击按钮进行 +5 的方法 2.在mutations中定义个点击按钮进行 改变title 的方法 3.在组件中调用mutations修改state中的值 5.总结 通过mutations修改state的步骤 1.定义

    2024年02月11日
    浏览(28)
  • uniapp-vue3语法实现小程序全局分享(setup,mixin)

    随着vue3的普及uniapp官方也支持了vue3语法的编写 相信大家在开发过程中肯定碰到过小程序所有页面都要开启分享功能的需求;指定的页面(如:文章详情页)有单独的配置,而非单独配置的页面(如:付费的订单详情页)都是统一跳转到首页 我的做法如下: 此时小程序所有页的分

    2024年01月21日
    浏览(40)
  • SpringBoot+MyBatisPlus+MySql+vue2+elementUi的案例、java访问数据库服务、java提供接口服务

    1、项目不使用前后端分离。 2、在创建 SpringBoot 的时候要注意各个插件间的版本问题。 3、后端技术 SpringBoot + MyBatisPlus + MySql 。 4、前端技术 vue2 + elementUi 。 简单介绍 1、数据库名称 ssm_db 2、表名称 tbl_book 数据表对象文件(Book.java) 配置文件(application.yml) 创建项目后,在 resou

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包