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 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
用正则表达式替换图片地址img标签
Nov 22 Javascript
JS常用字符串处理方法应用总结
May 22 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
Aug 06 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
express如何解决ajax跨域访问session失效问题详解
Jun 20 Javascript
vue中对象数组去重的实现
Feb 06 Javascript
JavaScript canvas实现文字时钟
Jan 10 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获取http请求的头信息实现步骤
2012/12/16 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
php 基础函数
2017/02/10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python下的subprocess模块的入门指引
2015/04/16 Python
Python 含参构造函数实例详解
2017/05/25 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
详解Python中的文件操作
2021/01/14 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
批评与自我批评材料
2014/02/15 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
军训感想500字
2014/02/20 职场文书
青蓝工程实施方案
2014/03/27 职场文书
教师考察材料范文
2014/06/03 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
工程索赔意向书
2014/08/30 职场文书
心灵点滴观后感
2015/06/02 职场文书