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 ...
随机推荐
- 获取联通光猫PT952G的管理员密码
前言 普通用户的帐号和密码在光猫的背面 输入光猫网关即可跳转到登录界面 但是没有什么权限操作东西,所以我找到了管理员界面 输入 网关+cu.html 即可跳转到管理员界面 例如我这里是http://1 ...
- Python异步协程(asyncio详解)
续上篇讲解yield from博客,上篇链接:https://www.cnblogs.com/Red-Sun/p/16889182.html PS:本博客是个人笔记分享,不需要扫码加群或必须关注什么的 ...
- 【面试题总结】JVM02:JVM参数调优、类加载机制
四.JVM参数调优 1.调优工具 (1)jvisualvm:jdk提供的性能分析工具,可以监控java进程,对dump文件分析:查看应用程序的详细信息,针对不同插件,实现监控GC过程.内存.进程.线程 ...
- 【每日一题】【DFS】2022年1月5日-543. 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 答案: /** * Definition for a binary ...
- 【云原生 • DevOps】一文掌握容器管理工具 Rancher
一.容器管理工具 Rancher 介绍Rancher 是一个开源的企业级全栈化容器部署及管理平台,其实就是一个 Docker 的图形化管理界面.它为容器提供基础架构服务,可以让 CNI 兼容的网络服务 ...
- APP异常测试点汇总
在测试APP时异常测试是非常必要的. 安装卸载中的异常测试 一.安装 安装过程中设备重启 安装过程中息屏 安装过程中断网 安装过程中切换网络 安装过程中收到短信提醒 安装过程中收到来电提醒 安装过程中 ...
- texlive2021编译中文
环境 Windows 10 编译 测试latex代码 \documentclass{article} \usepackage[UTF8]{ctex} \begin{document} 中文输入 \en ...
- 解决MySQL Connector/ODBC驱动无法安装Error1918
1.问题描述 我在一台windows服务器上安装好mysql之后,再安装mysql的ODBC连接驱动时,报错如下: 2.解决方法 之所以出现安装失败是由于缺少Miscrosoft Visual C++ ...
- Spark详解(08) - Spark(3.0)内核解析和源码欣赏
Spark详解(08) - Spark(3.0)内核解析和源码欣赏 源码全流程 Spark提交流程(YarnCluster) Spark通讯架构 Spark任务划分 Task任务调度 Shuffle原 ...
- Spring 和 Spring MVC的区别
Spring 和 Spring MVC的区别 学习Spring MVC也有几天时间了,那么Spring和Spring MVC的区别到底在哪里,二者是什么关系呢?认为二者是一个东西那肯定是不对的,而 ...