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实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
javascript getElementsByClassName函数
Apr 01 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
Feb 16 Javascript
JS的replace方法详细介绍
Nov 09 Javascript
js替换字符串的所有示例代码
Jul 23 Javascript
了解Javascript的模块化开发
Mar 02 Javascript
jQuery的事件预绑定
Dec 05 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
Feb 10 Javascript
JS+CSS实现网页加载中的动画效果
Oct 27 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
JavaScript ES6的函数拓展
Jan 18 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图片上传代码
2013/11/04 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
asp 取文本框名称代码
2008/12/02 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
python采集微信公众号文章
2018/12/20 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
大学生学习自我评价
2014/01/13 职场文书
讲座主持词
2014/03/20 职场文书
我爱我家教学反思
2014/05/01 职场文书
校运动会广播稿300字
2014/10/07 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
售后服务质量承诺书
2015/04/29 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技