Vue 创建组件的两种方法小结(必看)


Posted in Javascript onFebruary 23, 2018

创建组件的两种方法小结

1.全局注册

2.局部注册

var child=Vue.extend({})
var parent=Vue.extend({})

Vue.extend() 全局方法 生成构造器,创建子类

使用基础 Vue 构造器,创建一个“子类”。

这样写非常繁琐。于是vue进行了简化

使用Vue.component()直接创建和注册组件:

Vue.component(id,options) 全局方法 用来注册全局组件

id 是string类型,即是注册组件的名称

options 是个对象

// 全局注册,my-component1是标签名称
Vue.component('my-component1',{
 template: '<div>This is the first component!</div>'
})
var vm1 = new Vue({
 el: '#app1'
})

Vue.component()的第1个参数是标签名称,第2个参数是一个选项对象,使用选项对象的template属性定义组件模板。

使用这种方式,Vue在背后会自动地调用Vue.extend()。

在选项对象的components属性中实现局部注册:

var vm2 = new Vue({
 el: '#app2',
 components: {
  // 局部注册,my-component2是标签名称
  'my-component2': {
   template: '<div>This is the second component!</div>'
  },
  // 局部注册,my-component3是标签名称
  'my-component3': {
   template: '<div>This is the third component!</div>'
  }
 }
})

==局部注册都放在选项对象中创建==

注意:这里是components,里面可以定义多个组件。

简化后是这样的写法

<body>
 <div id='box'>  
  <parent>  
  </parent>
 </div>
 <script src='js/vue.js'></script>
 <script>
  Vue.component('parent',{
   template:`<div><h1>我是父组件</h1><child></child></div>`,
    components:{
    'child':{
     template:`<h1>我是子组件</h1>`
    }
   }
  })
  new Vue({
   el:'#box'
  })
 </script>
</body>

注册一个parent的父组件。然后在父组件的选项对象中注册一个child的子组件。将子组件child的标签写到父组件parent的template里面。

页面上的样式结构就是

<div>
 <h1>我是父组件</h1>
 <h1>我是子组件</h1>
</div>

注意:用局部注册的子组件不能单独直接使用!

标签挂在div里,会报错

<div id='box'>  
 <child></child>
</div>

结果会报错。

以上这篇Vue 创建组件的两种方法小结(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
Javascript 命名空间模式
Nov 01 Javascript
javascript回车完美实现tab切换功能
Mar 13 Javascript
javascript中HTMLDOM操作详解
Dec 11 Javascript
修复bash漏洞的shell脚本分享
Dec 31 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
基于JavaScript定位当前的地理位置
Apr 11 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
Nov 06 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
Feb 23 #Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 #Javascript
angular动态表单制作
Feb 23 #Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 #Javascript
浅谈vuejs实现数据驱动视图原理
Feb 23 #Javascript
Vue父组件调用子组件事件方法
Feb 23 #Javascript
vue实现密码显示隐藏切换功能
Feb 23 #Javascript
You might like
PHP session会话操作技巧小结
2016/09/27 PHP
PHP对象实例化单例方法
2017/01/19 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
js的写法基础分析
2011/01/17 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
详解js类型判断
2018/05/22 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现ftp客户端示例分享
2014/02/17 Python
跟老齐学Python之再深点,更懂list
2014/09/20 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python能做什么 python的含义
2019/10/12 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
毕业设计论文致谢词
2015/05/14 职场文书
python中if和elif的区别介绍
2021/11/07 Python