vue插件(自定义组件或js文件使用),vue.extend(),vue.component()注册组件

Vue组件化开发 文章目录Vue组件化开发组件化开发:Vue实例方法与属性Vue.extend与Vue.Component全局指定、组件、方法实例:Popup插件的封装 Vue组件化开发 组件化开发: 1、组件化开发指的是将复杂的业务拆分为一个有一个的组件 2、组件化开发的组件一般来说要灵活 3、组件化开发涉及到了Vue的js组件封装,需要掌握Vue基础、Vue实例方法与属性、Vue.extend、Vue插件等知识... 阅读详情

一、vue.use()自定义组件或者引用第三方组件(即vue文档中的插件)?

参考:https://cn.vuejs.org/v2/guide/plugins.html
1.1、使用第三方组件

通常我们在vue里面使用别人开发的组件,第一步就是install,第二步在main.js里面引入,第三步Vue.use这个组件。

例如:引入element-ui组件。

1.2、自定义组件或js文件

1.2.1、自定义组件

使用自定义的组件今天我简单的也来use一个自己的组件。

例如: 自定义loading组件。


这里我用的webpack-simple这个简单版本的脚手架为例,安装,直接进入正题

首先看下目前的项目结构:

webpack首先会加载main.js,所以我们在main的js里面引入。我以element ui来做对比说明

复制代码
import Vue from 'vue'
import App from './App.vue'

// 引入element-ui组件
import ElementUi from 'element-ui'
import 'element-ui/lib/theme-default/index.css'

// 引入自定义组件。index.js是组件的默认入口
import Loading from '../components/loading'
Vue.use(Loading);

Vue.use(ElementUi);
new Vue({
  el: '#app',
  render: h => h(App)
})
复制代码

然后在Loading.vue里面定义自己的组件模板

复制代码
<!-- 这里和普通组件的书写一样 -->
<template>
    <div class="loading">
        loading...
    </div>
</template>
复制代码

在index.js文件里面添加install方法

复制代码
import MyLoading from './Loading.vue'
// 这里是重点
const Loading = {
    install: function(Vue){
        Vue.component('Loading',MyLoading)
    }
}

// 导出组件
export default Loading
复制代码

接下来就是在App.Vue里面使用组件了,这个组件已经在main.js定义加载了

复制代码
<template>
  <div id="app">
  <!-- 使用element ui的组件 -->
  <el-button>默认按钮</el-button>

  <!-- 使用自定义组件 -->
  <Loading></Loading>
  </div>
</template>
复制代码

下面是效果图

1.2.2.1、自定义js文件一

main.js文件中引用

import config from './common/config.js'
Vue.use(config)

config.js文件,添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。

export default {
	install: function (Vue) {
		Vue.prototype.config = {
			defaultImgSize: '_0x0',
		}
	}
}
组件中直接使用:config.dafaultSize获取到对象值

1.2.2.2、自定义js文件二

base.js文件:

export default {
	created () {
		window.vm = this;
		let title = this.docTitle;
		if(title == ""){
			title = this.defaultTitle
		}else{
			if((this.defaultTitle).indexOf('-') == -1){
				title = title + " - " + this.defaultTitle
			}else{
				let arr = this.defaultTitle.split(' - ');
				title = title + " - " + arr[arr.length - 1]
			}
			
		}
		document.title = title;
	},
	data () {
		return {
			defaultTitle: document.title,
			docTitle: ""
		}
	},
	filters: {
		getResourceUrl (resourceCode) {
			let url = "about:blank";
			if(resourceCode){
				url = Site.api.upfileBaseUrl + resourceCode;
			}
			return url;
		},

		//传入日期或者日期对象返回格式化的日期
		getDate (d) {
			let date,
				dateObj;

			if(_.isString(d)){
				dateObj =new Date(d);
			}
			if(_.isDate(dateObj) && "Invalid Date" != dateObj.toString()){
				date = Site.globalize.format(dateObj,"yyyy年MM月dd日");
			}else{
				date = "----年--月--日"
			}
			return date;
		},

		//传入数字返回格式化的价格
		getPrice (number) {
			let price = number - 0; //转成数字
			if(isNaN(price)){
				price = 0;
			}
			price.toFixed(2);
			return "¥" + price.toFixed(2);
		},

		//传入数字返回格式化的重量
		getWeight (number) {
			let weight = number - 0; //转成数字
			if(isNaN(weight)){
				weight = 0;
			}
			return "约 " + weight + "g";
		}
	},
	methods: {
		getProductSpec (data, name) {
			let list = [];
			if(_.isArray(data)){
				_.each(data, item => {
					if(item.DataName == name){
						list = item.DataList || [];
						return false;
					}
				});
			}
			return list;
		}
	}
}

组件中引入:

import base from '../mixins/base'
methods中使用:
getPrice (price) {
	return base.filters.getPrice(price);
},


二、vue.extend()创建一个组件构造器?vue.component()注册组件?

参考:https://blog.youkuaiyun.com/qq_25371579/article/details/78476990
流程:创建组件------->注册组件---->使用组件
2.1、注册为全局组件

例如:在main.js中,初始化根实例之前,将menu组件注册到全局

import menu from './components/menu/index'
Vue.component('shopMenu',menu)
根实例中所有组件都可以直接引用此组件
<shopMenu></shopMenu>
2.2、注册局部组件



车辆TBOX科普 第7次 TBOX技术深度解析:硬件架构与核心组件详解 摘要: TBOX(车载远程信息处理单元)是智能网联汽车的核心组件,承担数据采集、通信连接与安全交互等关键功能。其硬件架构以主控单元为核心,采用ARM架构处理器(如NXP i.MX系列)实现高效能低功耗处理,搭配DDR4/LPDDR5内存保障性能,eMMC/UFS存储确保数据可靠性。设计中需平衡车规级可靠性(AEC-Q100)、EMC兼容性及成本控制,同时集成通信、定位与安全模块。未来趋势聚焦异构计算、先进制程及功能安全(ASIL-D)与信息安全融合,推动TBOX向边缘计算节点演进。该技术是汽车智能化转型的重 阅读详情

相关推荐

详细对比模型训练和模型精调

当我们进行模型精调(Fine-Tuning)和模型训练时,我们需要考虑到不同的步骤和目标。

pumpkin84514的博客 1852

vue 全局函数的 定义与任意调用 (代码篇)

vue 全局函数的 定义与任意调用

草巾冒小子的博客 1374

Ubuntu登录界面黑屏?手把手教你排查和修复LightDM启动失败(附debug命令详解)

本文详细介绍了Ubuntu系统中LightDM(Light Display Manager)启动失败导致登录界面黑屏的排查与修复方法。通过系统状态检查、调试模式分析、常见故障解决方案及高级调试技巧,帮助用户快速定位并解决LightDM相关问题,恢复正常的图形登录环境。

weixin_34005090的博客 316

Vue基于extend方法实现动态插入自定义组件以及组件props传值,“js-dynamic-components”。

在很多时候,开发vue项目需要对我们自己开发的自定义组件进行动态的控制,以实现按照我们想要的组件去进行渲染,同时可以动态的管理操作前端的自定义组件渲染显示。那么如何实现?

Agent、AI应用、全栈技术领域探索者,分享实用干货与实战经验。 2322

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

首先,我们定义了一个LIFNeuronself.soma.L = self.soma.diam = 12.6157 # 固定神经元形状self.cm = cm # 电容self.V_rest = V_rest # 静息电位self.V = V_rest # 初始化膜电位在初始化过程中,每个神经元被赋予初始的静息电位,并且其膜电位会在后续的模拟过程中动态变化。

qq_36224726的博客 1424

prometheus普罗米修斯集监控外部k8s

prometheus普罗米修斯集监控外部k8s

你是我一生的追求 2249

Vue工程化中创建全局组件、extend创建组件、extends配置组件、异步组件

工程化中创建全局组件需要在文件夹下创建,并且全局组件需要写在 js 文件内。步骤:编写 index.js 文件 编写入口文件 main.js 文件 编写父组件 App.vue 文件 在工作中,我们更喜欢下面这种写法:我们需要在 loading 文件夹下再创建一个 文件,然后修改以下文件的写法,入口文件和父组件的写法不变。文件: 文件: 我们创建Vue实例时,都会有一个el选项,来指定实例的根节点,如果不写el选项,那组件就处于未挂载状态。Vue.extend 的作用,就是基于 Vue 构造器,创

月光晒了很凉快的博客 1487

【企业智能体开发】优化模型成本、延迟与失败降级

小林的培训快开始时,服务台花很久“思考最优回答”,体验并不会更好。反过来,为了省钱而始终选最轻的模型,若连房间、连接方式和任务状态都识别不稳,后续错误检索和重复建单会造成更大代价。企业 Agent 的优化对象不是单次模型调用价格,而是任务在可接受时间内、安全地推进到正确结果的总成本。

Mr数据杨 893

vue中,Vue.extend的实际运用 (运用Vue.extend自己封装一个类似Element的MessageBox的组件)

**需求:**将原项目中所有用Element的Message 消息提示组件的地方,改为如下样式: message消息提示: demo见:demo地址

ddx2019的博客 5662

SAP_SD模块销售利润中心替代简介

SAP SD模块跨公司销售利润中心替代简介 在SAP SD模块中,系统自动生成的财务凭证需要正确反映利润中心归属。当默认利润中心取值不符合业务逻辑时(如跨公司销售、多组织共用工厂等情况),需配置利润中心替代功能。该功能通过事务码0KEM定义替代规则,可根据物料、客户等条件自动替换利润中心字段。系统配置包括创建替代规则、定义先决条件、设置用户出口程序等步骤。对于复杂业务场景,还可通过用户出口或BADI增强实现。利润中心替代能确保销售收入与成本正确核算,避免利润分配错误,满足企业多维度利润分析需求。

我小时候很黑的博客 436

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

机器学习深度学习业余选手 1146

通过 Vue.extend() 创建可指令调用的组件——MessageBox 弹框

使用过 element-ui 的朋友,应该都用过 MessageBox 弹框组件。MessageBox 弹框 只需要一条JS代码就可以调用使用,非常方便。那这是怎么实现的呢?我们也来搞一个这样的组件。

Jay的博客 4239

基于Simulink环境,提供一个关于如何对EMI抑制的DC-DC变换器进行仿真建模的示例

EMI定义:电磁干扰是指任何能中断、阻碍、降低或限制电气设备有效性能的电磁能量。重要性合规性:确保产品符合国际和地方的EMC标准。可靠性:减少因外部或内部EMI导致的系统故障风险。挑战滤波设计:合理设计输入输出滤波器以抑制传导EMI。布局与接地:良好的PCB设计对于减少辐射EMI至关重要。屏蔽:使用金属屏蔽来保护敏感电路不受外界干扰。首先明确要模拟的任务内容。设计一个能够在高频操作下有效抑制EMI的DC-DC变换器。根据工作频率和谐振元件值确定合适的滤波器参数。

xiaoheshang_123的博客 146

Vue:自定义插件Vue.use()、Vue.component()、Vue.extend()的一点学习

最近看了一下Vue自定义插件的步骤,记录一下: 一、Vue.use() 网上比较多的例子是创建一个loading组件,我们也从这里开始学习 // 第一步:定义loading组件 // 在loading/loading.vue文件中定义一个简单的组件内容 ... // 第二步:定义loading的install方法 // loading/index.js import Loading...

laurel_y的博客 1013

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

八五、vue进阶之路(Vue.extend,Vue.component,Vue.use)

Vue.extend,Vue.component,Vue.use

梅某某 3422

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

vue.extend和vue.component

原文链接https://blog.csdn.net/dkr380205984/article/details/80116024 (1)extend组件构建器 个人描述:暂时还没有挂载到dom文档流中的一个组件说明 (2)component 组件注册器 个人描述:我也不需要挂载到dom文档流中,我也还是一个说明 <div id="mount-point"...

那谁家的博客 1901

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vue 组件——注册组件的基本步骤

vue 组件——注册组件的基本步骤 注册组件的基本步骤 参考官网资料 1、创建组件构造器 调用Vue.extend()方法 2、注册组件 调用Vue.component()方法 3、使用组件 在Vue实例的作用范围内使用组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>组件基本步骤</title> <scr

qq_45949046的博客 4254

vue组件注册 Vue.extend Vue.component Vue.use的使用 以及组件嵌套

/** * vue.extend用法 * 使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。 * 注意:此实例可以挂载到根实例之外 */ const Profile = Vue.extend({ template: '<p>{{firstName}} {{lastName}} aka {{alias}}&l...

weixin_40629549的博客 644

vue-extend和vue-component注册一个全局组件

extend()是一个全局构造器,生成的是一个还没挂载到页面元素上的组件实例。 在全局挂载插件的形式全局注册,就需要用到vue.use()方法,官方文档: 所以插件必须是一个对象,并且提供install方法,注册的时候自动调用该方法。 所以组件的写作步骤就清晰了一些了,实践出真知,现在就来练习一下写一个简约版的全局alert弹框 1、在components文件夹下新建alert文件夹,...

donggua_123的博客 1664

Vue详细介绍及使用(组件)

Vue详细介绍及使用(二) 一、Vue组件基础知识 1、组件的概念 官方定义:组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。 ...

小仙儿 1万+

从vue.use引发的vue.component和vue.extend一系列连锁思考

前言:在写全局组件的时候,我们会用到vue.component和vue.use。那他们到底有啥区别,和内在的联系呢。 vue.use的源码实现 上来先举个例子,我们经常在引用第三方插件的时候会看到再main.js文件中这样写: 那么vue.use具体做了一些什么呢,我们翻开vue的源码一探究竟(源码文件): import { toArray } from '../util/index' ...

weixin_41687718的博客 1184

小白学习Vue(3)--全局Api(Vue.set | Vue.directive | Vue.component等)

3. 全局Api: 3-1. Vue.set()&&Vue.delete() 3-2. Vue.directive( id, [definition] ) 3-3. Vue.filter( id, [definition] ) 3-4. Vue.component( id, [definition] ) 3-5. Vue.extend( options ) 3-6. Vue.use( plugin ) 3. 全局Api: 全局:任何地方都可以使用  3-1. Vue.set()&amp.

假人一个的博客 1778

自己封装 vue 组件 和 插件

vue 组件 一、组件的创建,两种方法。(本质上是1、2两种,vue文件,只是创建了一个 组件选项对象,仅是一个js对象)1、定义组件:Vue.component('button-counter',{})。这种方法创建的组件,只能使用在父组件中,无法使用在插件中。因为在不挂载组件时,无法获取到组件对象。 Vue.component('my-component',{ ...

weixin_30867015的博客 447

Vue / vue-class-component

目录前言类组件datamethodscomputedhooks其他配置项注册钩子extendmixinspropsvuex$refs 前言 vue官网推荐了一个叫vue-class-component的包,可以以class的模式写vue组件。 类组件 @Component 装饰器使您的类成为Vue组件 import Vue from 'vue' import Component from 'vue-class-component' // HelloWorld class will be a Vue c

学习笔记 1万+

Vue.extend和Vue.component

Vue.extend

xinxin_csdn的博客 762

构建个人组件库——vue.extend和vue.component

    需求:构建一个类似elment-ui的组件库,打包发布到npm     个人探索:webpack打包发布到npm流程 --&gt; 组件开发环境和组件发布环境探索 --&gt;两种类型的组件     个人探索流程和实际流程基本是反着来的     本文目标:完成两种类型的组件,extend生成一个类似alert的组件,component生成一个search框组件     前置条件:本...

我不是水哥 7302
上一篇: Vue2 ,v-model,以及利用 v-model 实现组件props双向绑定的解决方案
下一篇: 实现鼠标经过,产品图片的局部放大功能
github_39598787
博客等级 码龄9年 11粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值