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 相关文章推荐
让textarea控件的滚动条怎是位与最下方
Apr 20 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
input框中的name和id的区别
Nov 16 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
React实现轮播效果
Aug 25 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
javascript编程起步(第六课)
2007/02/27 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
pymssql ntext字段调用问题解决方法
2008/12/17 Python
pycharm 使用心得(三)Hello world!
2014/06/05 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python输出决策树图形的例子
2019/08/09 Python
在python中求分布函数相关的包实例
2020/04/15 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
《口技》教学反思
2014/02/21 职场文书
教师党员一句话承诺
2014/03/28 职场文书
农业项目建议书
2014/08/25 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python