vueJS组件

什么是组件:组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能。在有些情况下,组件也可以是原生HTML元素的形式,以is特性扩展。 如何注册组件? 需要使用Vue.extend方法创建一个组件,然后使用Vue.component方法注册组件。Vue.extend方法格式如下: var MyComponent = Vue.extend({ // 选项…后面再介绍 }) 如果想要其他地方使用这个创建的组件,还得个组件命个名: Vue.component(‘my-component’, MyComponent) 命名之后即可在HTML标签中使用这个组件名称,像使用DOM元素一样。下面来看看一个完整的组件注册和使用例子。 html代码:
js代码:

复制代码
// 定义
var MyComponent = Vue.extend({
template: ‘

A custom component!

})

// 注册
Vue.component(‘my-component’, MyComponent)

// 创建根实例
new Vue({
el: ‘#example’
})
复制代码
输出结果:

A custom component!
A custom component!’ }); var parent = Vue.extend({ template: ‘
Parent Component:
‘, components: { ‘child-component’: child } }); Vue.component(“parent-component”, parent); 复制代码 上面的定义过程比较繁琐,也可以不用每次都调用Vue.component和Vue.extend方法: 复制代码 // 在一个步骤中扩展与注册 Vue.component(‘my-component’, { template: ‘
A custom component!
’ }) // 局部注册也可以这么做 var Parent = Vue.extend({ components: { ‘my-component’: { template: ‘
A custom component!
’ } } }) 复制代码 动态组件 多个组件可以使用同一个挂载点,然后动态的在他们之间切换。使用保留的元素,动态地绑定到它的is特性。下面的列子在同一个vue实例下挂了home、posts、archive三个组件,通过特性currentView动态切换组件显示。 html代码: 复制代码
Home Posts Archive

复制代码
js代码:

复制代码
var vue = new Vue({
el:”#dynamic”,
data: {
currentView: “home”
},
components: {
home:{
template: “Home”
},
posts: {
template: “Posts”
},
archive: {
template: “Archive”
}
}
});
document.getElementById(“home”).onclick = function(){
vue.currentView = “home”;
};
document.getElementById(“posts”).onclick = function(){
vue.currentView = “posts”;
};
document.getElementById(“archive”).onclick = function(){
vue.currentView = “archive”;
};
复制代码
组件和v-for


不能传递数据给组件,因为组件的作用域是独立的。为了传递数据给组件,应当使用props:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值