首页 > 其他分享 >Vue 注册全局组件的方式

Vue 注册全局组件的方式

时间:2023-01-08 01:11:49浏览次数:39  
标签:Vue console App BackTop vue 组件 全局 app

一、语法: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

 

标签:Vue,console,App,BackTop,vue,组件,全局,app
From: https://www.cnblogs.com/chccee/p/17033969.html

相关文章

  • Vue和React路由原理
    hash<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • day04-Vue01
    Vue011.Vue是什么?Vue(读音/vju:/,类似于view)是一个前端框架,依据构建用户界面Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或者项目整合支持和其他类库结合使用......
  • JavaWeb三大组件之监听器-Listener
    1.JavaWeb三大组件Servlet程序,Listener监听器,Filter过滤器2.Listener监听器监听某种变化(生命周期监听,属性变化监听),做出反应--触发对应方法完成相应任务;监听器实现接口......
  • Vue自定义事件原理
    自定义事件的基本用法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-sca......
  • Blazor与Vue标签代码的可维护性对比
    通过一个简单示例来进行对比,Vue的ElementUI组件的行内编辑:Blazor的AntDesginBlazor组件的行内编辑:区别:el-table-column的label属性相当于Column的Title属性,这个是没......
  • 【vue】Vue-router
    Vue-router安装npminstallvue-router--save-devvue-cli中已经选择安装了vue-router,那这里不需要重复安装了解读route路径```src/router/index.js``import......
  • Vue3 中的组件 provide和inject 传值、获取组件实例的方法getCurrentInstance()
     一、 provide和inject1:在父级组件中提供数据     语法:provide('提供给子组件的变量名',提供给子组件的数据)   2:在子级组件中获取收据  ......
  • 安卓应用漏洞学习-Content Provider组件的自定义权限
    前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider组件的openFile接口问题......
  • vue-router的使用
    vue-router是vue基础工具的重要组成部分。通过简单的配置路由组件映射关系,可以实现vue页面轻松跳转。 什么是前端路由它是URL地址与组件之间的对应关系,通常使用Hash地......
  • Vue中使用flv.js播放flv格式视频流
    Vue中使用flv.js播放flv格式视频流1.安装依赖npminstallflv.js--save--legacy-peer-deps2.具体代码Html部分<template> <div><videoautoplaycontrol......