一、语法: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 指定的元素上

最新文章

  1. JQ第二天
  2. How to run a geoprocessing tool
  3. 在eclipse中启动tomcat加载不了项目的解决方法
  4. [php入门] 5、初学CSS从中记下的一些基础点(For小白)
  5. react路由案例(非常适合入门)
  6. 移动端设备UA检测
  7. 读propert文件
  8. HDU-4614 Vases and Flowers 线段树区间更新
  9. Kali无法定位软件包的解决方案
  10. Python标准库--os模块
  11. unwrap_uvw 笔记
  12. tiny210(s5pv210)移植u-boot(基于 2014.4 版本号)——NAND 启动
  13. 企业证书APP发布流程 分类: ios相关 app相关 2015-06-10 11:01 212人阅读 评论(0) 收藏
  14. jasperreports+IReport 5.56,集成到Spring MVC4.0案例
  15. linux命令中的“&lt;”和“|”是什么意思?
  16. C#代码中如何比较两个日期的大小?
  17. SPOJ - AMR11H (容斥原理)
  18. CS229 6.14 Neurons Networks Restricted Boltzmann Machines
  19. liferay6.1.2的API
  20. binlog之四:mysql中binlog_format模式与配置详解,binlog的日志格式详解

热门文章

  1. kotlin的suspend对比csharp的async&amp;await
  2. AIR32F103(六) ADC,I2S,DMA和ADPCM实现录音播放功能
  3. WEB入门——爆破21-28
  4. JavaScript笔记之面向对象
  5. 将 Vue.js 项目部署至静态网站托管,并开启 Gzip 压缩
  6. 使用浏览器inspect调试app
  7. vue中点按钮回到顶部,和elementUI中置顶按钮的实现
  8. JavaScript:七大基础数据类型:字符串string
  9. kafka详解(02) - kafka_2.11-2.4.1安装部署
  10. Input源码解读——从&quot;Show tabs&quot;开始