Vue 组件注册全解析


Posted in Vue.js onDecember 17, 2020

全局组件注册语法

components中的两个参数组件名称和组件内容

Vue.component(组件名称, {
   data: 组件数据,
   template:组件模板内容
  })

全局组件注册应用

组件创建:

Vue.component('button-counter', {
   data: function(){
    return {
     count: 0
    }
   },
   template: '<button @click="handle">点击了{{count}}次</button>',
   methods: {
    handle: function(){
     this.count ++;
    }
   }
  })
  var vm = new Vue({
   el: '#app',
   data: {
   }
  });

如何在页面中运用,直接在页面中应用组件名称

<div id="app">
  <button-counter></button-counter>
</div>

这个组件是可以重用的,直接在页面中多次使用,切数据相互独立,互不干扰

组件注册注意事项

1.data必须是一个函数

  • 分析函数与普通对象的对比

2.组件模板内容必须是单个根元素

  • 分析演示实际的效果

3.组件模板内容可以是模板字符串

  • 模板字符串需要浏览器提供支持(ES6语法)

4.组件命名方式

  • 短横线方式
Vue.component('my-component',{/*...*/})

驼峰方式

Vue.component('MyComponent',{/*...*/})

如果使用驼峰式命名组件,那么在使用组件的时候,只能在字符串模板中用驼峰的方式使用组件,但是在普通的标签模板中,必须使用短横线的方式使用组件

局部组件

局部组件只能在注册它的父组件中使用

局部组件注册语法

var ComponentA = {/*...*/}
var ComponentB = {/*...*/}
var ComponentC = {/*...*/}
new Vue({
  el : '#app',
  components: {

'component-a' : ComponentA,


'component-b' : ComponentB,


'component-c' : ComponentC

}
})

组件的创建

Vue.component('test-com',{
   template: '<div>Test<hello-world></hello-world></div>'
  });
  var HelloWorld = {
   data: function(){
    return {
     msg: 'HelloWorld'
    }
   },
   template: '<div>{{msg}}</div>'
  };
  var HelloTom = {
   data: function(){
    return {
     msg: 'HelloTom'
    }
   },
   template: '<div>{{msg}}</div>'
  };
  var HelloJerry = {
   data: function(){
    return {
     msg: 'HelloJerry'
    }
   },
   template: '<div>{{msg}}</div>'
  };
  var vm = new Vue({
   el: '#app',
   data: {
    
   },
   components: {
    'hello-world': HelloWorld,
    'hello-tom': HelloTom,
    'hello-jerry': HelloJerry
   }
  });

页面中的应用

<div id="app">
  <hello-world></hello-world>
  <hello-tom></hello-tom>
  <hello-jerry></hello-jerry>
  <test-com></test-com>
 </div>

以上就是Vue 组件注册全解析的详细内容,更多关于Vue 组件注册的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
Vue Element UI自定义描述列表组件
May 18 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 #Vue.js
vue实现图片裁剪后上传
Dec 16 #Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 #Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 #Vue.js
Vue解决移动端弹窗滚动穿透问题
Dec 15 #Vue.js
8个非常实用的Vue自定义指令
Dec 15 #Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 #Vue.js
You might like
一个用于网络的工具函数库
2006/10/09 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
详解python单元测试框架unittest
2018/07/02 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
详解Django 时间与时区设置问题
2019/07/23 Python
使用python制作一个解压缩软件
2019/11/13 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
编程输出如下图形
2013/11/24 面试题
销售主管岗位职责范本
2014/02/14 职场文书
村委会贫困证明范本
2014/09/17 职场文书
担保书怎么写 ?
2019/04/22 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript