Vue 注册全局组件的方式
一、语法:Vue的实例.component("组件名称",组件)
1、方式一:这个组件就是 vue文件
import { createApp,h } from 'vue' //引入 创建vue实例的api
import App from './App.vue' //引入 根组件
let app = createApp(App) // 创建vue实例对象 =>用户vue实例给你提供的方法
console.log(app); //对象
import BackTop from './HeightComponent/BackTop.vue'
// 1vue 操作的 虚拟dom => js 对象
//注册全局组件
console.log(BackTop);
app.component('BackTops',BackTop)
app.mount('#app') //将vue 挂载到 html 指定的元素上
2、方式二:这个组件就是 对象
import { createApp,h } from 'vue' //引入 创建vue实例的api
import App from './App.vue' //引入 根组件
let app = createApp(App) // 创建vue实例对象 =>用户vue实例给你提供的方法
console.log(app); //对象
import BackTop from './HeightComponent/BackTop.vue'
// 1vue 操作的 虚拟dom => js 对象
// 2 vue的组件 解析成 一个对象 ={}
//注册全局组件
console.log(BackTop);
app.component('BackTops',{ // render => 就是将vnode 变成真实dom
// h 函数 =》 创建 vnode
//语法 h(元素名称 ,这个元素的数据,子集)
render(){
return h('h2',{id:'apps'},'同学',h('span',{},'111')) // =》<h2> <span><span></h2>
}
})
app.mount('#app') //将vue 挂载到 html 指定的元素上
3、单独创建文件,实现自动引入组件,自动注册全局组件
问题:在项目中注册的全局组件,会有很多,如果在这个mian.js中进行引入注册,代码很多
解决方法:单独创建文件,自动引入需要注册的组件
步骤一:
// 这个文件 就是自动给我们注册全局组件文件 // 自己写一个插件 app.use // app.use作用
// 注册插件的=》 就是我们自己写的一个方法和vue项目进行关联,在自己的放中可以使用vue 提到api //app.use 作用
//app.use(对象的形式) // 特点
//1 如果这个对象中有一个属性 install,这个install 属性的值是一个方法,会自动执行这个方法
// 并且这个方法的第一个参数就是当前vue 实例对象
//2 如果app.use这个 里面放的是一个方法,并且这个方法的第一个参数就是当前vue 实例对象,就是自定执行这个方法 // let obj = {
// install(App){
// console.log(1000,App); //使用vue 提供的方法
// }
// }
//引入组件 我这个插件 模块化=》 import BackTop from './BackTop.vue'
import Winput from './Winput.vue' let arrs = [
{
name:'BackTop',com:BackTop
},
{
name:'Winput',com:Winput
},
]
function obj(App){
console.log(66666,App); // 自动注册 全局组件 多个 =》数组
arrs.forEach((item)=>{
App.component(item.name,item.com)
}) } export default obj
步骤二:
//自动的方法
// require.context('文件路径','布尔值','正则') //语法:require.context('文件路径','布尔值','正则') //api 两个 keys() =>文件路径 =》数组结构 webpack(文件路径).default 这个文件内容
// function getArrs(){
let arrs = []
let webpacks= require.context('./',true,/\.vue/)
console.log(webpacks.keys()); webpacks.keys().forEach((item,index)=>{
// ./BackTop.vue
arrs.push({name:item.replace('./','').replace('.vue',''),com:webpacks(item).default})
}) return arrs } function obj(App){
console.log(66666,App); //1 自动获取到 arrs 结构 let comList = getArrs() console.log(comList); comList.forEach((item)=>{
App.component(item.name,item.com)
}) } export default obj
// 步骤三:在入口文件main.js中引入这个文件
import { createApp,h } from 'vue' //引入 创建vue实例的api
import App from './App.vue' //引入 根组件
// 3 引入文件暴露的内容
import obj from './HeightComponent/index.js'
import Wfonction from './HeightComponent/Wfonction'
let app = createApp(App) // 创建vue实例对象 =>用户vue实例给你提供的方法
console.log(app); //对象
// 3 全局注册组件
app.use( obj)
app.component('WfoN',Wfonction)
app.mount('#app') //将vue 挂载到 html 指定的元素上
Vue 注册全局组件的方式的更多相关文章
- vue 注册全局组件
注册全局组件有啥好处呢? 提高代码的复用性:哪里需要写哪里,贼方便,就写一个标签:减少代码量:可以再配合slot一起使用,咦~~,舒服 为了让整个项目的可读性,我创建一个文件统一存放全局组件 1.创建 ...
- VUE注册全局组件和局部组件
全局组件 第一步:在components文件夹下建立一个子文件Users.vue <template> <div class="users"> {{msg} ...
- vue注册全局组件
在项目开发中能不能自己写一个组件可以像iview或者element那样可以不必引用就可以直接用呢?答案是可以的. 首先,写一个组件mainHeader. 接着在vue中注册这个组件,代码如下: Vue ...
- 优雅的处理vue注册全局组件
使用情景: 有频繁使用的组件 需要进行全局注册 可以将这些组件都放在components下同一个文件夹下,在此文件夹中建立 一个js文件 代码如下: import Vue from 'vue'; // ...
- vue 自动注册全局组件
vue 自动注册全局组件 vue 注册全局组件的方式 const plugins = { install(Vue) { const requireComponent = require.context ...
- vue 中注册全局组件
1 全局注册组件 建一个 js 文件, 注册全局组件, 并且暴露出去 然后再在 main.js 中引入 在页面就可以直接使用了 2 全局注册过滤器 建立文件, 包含所有过滤器方法 ...
- vue 的全局组件和 局部组件
vue组件局部与全局注册的区别 //局部注册 var mycomponent = new extend({ <!--Vue.extend()是Vue构造器的扩展,调用Vue.e ...
- vue中全局组件与局部组件的注册,以及动态绑定props值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue 复习篇. 注册全局组件,和 组件库
初篇 ============================================================== 1. 编写loading组件(components/Loading/ ...
- vue(3)—— vue的全局组件、局部组件
组件 vue有局部组件和全局组件,这个组件后期用的会比较多,也是非常重要的 局部组件 template与components属性结合使用挂载 其中 Vmain.Vheader.Vleft.Vconte ...
随机推荐
- C温故补缺(一):数据类型和基本类型占位
数据类型 基本类型:就是算术类型,包括整型和实型 枚举类型:一组离散的整数 void类型:无可用值类型 派生类型:指针(*),数组([]),结构体(struct),共用体(union),函数(fun( ...
- <二>强弱指针使用场景之 多线程访问共享对象问题
代码1 #include <iostream> #include <thread> using namespace std; class A { public: A() { c ...
- 【每日一题】【链表&头插法&ASCII码】【链表&迭代器】2022年1月28日-NC1 大数加法
描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回. 思路:原生链表&头插法节点值 import java.util.*; public class Solution ...
- MongoDB海量数据分页查询优化
MongoDB海量数据分页查询优化 一.背景 大量数据需从Mongo拿出来,一次性拿出来不科学,传统分页效率低下 二.传统方案 就是最常规的方案,假设 我们需要对文章 articles 这个表(集合) ...
- 《HTTP权威指南》– 6.代理
代理的概念: Web代理服务器是网络的中间实体.位于客户端和服务器之间,扮演"中间人"的角色,在各端点之间来回传送HTTP报文. 私有和共享代理: 代理服务器可以是某个客户端专用的 ...
- 用Python来写个小型购物车程序
0x1 前言 Python语言能做很多东西的,像数据分析啊.自动化.开发. 爬虫(真的很棒哟,初学者玩很有成就感的啊哈哈)等等还有挺多. 0x2 用Python编写的一个小型购物车程序 import ...
- RuntimeError: setuptools >= 41 required to build
使用命令python setup.py install 安装第三方库报RuntimeError: setuptools >= 41 required to build 原因setuptools版 ...
- Cryptohack的Adrien's Signs解题思路
题目如下: 输出的结果: 题目分析: 在原题的题目描述中并没有什么有用的消息,更多的信息是通过代码审计出来的.大致意思是,先把字节flag转换为二进制形式的字符串,然后判断字符串中每个字符,如果为1, ...
- [python] tensorflow中的argmax()函数argmax()函数
首先 import tensorflow as tf tf.argmax(tenso,n)函数会返回tensor中参数指定的维度中的最大值的索引或者向量.当tensor为矩阵返回向量,tensor为向 ...
- Ynoi 数据结构题选做
Ynoi 数据结构题选做 前言 我将成为数据结构之神!坚持 lxl 党的领导,紧随 nzhtl1477(女装灰太狼1477)的脚步.无论过去.现在还是未来,分块始终是实现 data structure ...