Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【vue】组件的使用(1)使用组件Vue.component #17

Open
Kelichao opened this issue Feb 3, 2017 · 0 comments
Open

【vue】组件的使用(1)使用组件Vue.component #17

Kelichao opened this issue Feb 3, 2017 · 0 comments
Labels

Comments

@Kelichao
Copy link
Owner

Kelichao commented Feb 3, 2017

什么是组件

组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。

子组件中的数据源一般有父组件赋予,子组件中的事件也建议传递给父组件,由父组件执行对应的业务及逻辑

一、注册全局组件

Vue.component('componentName', {
  // 选项
})

全局组件的简单使用方式

<div id="example">
  <my-component></my-component>
</div>
// 初始化组件
// 注册
Vue.component('my-component', {
  template: '<div>A custom component!</div>'
})
// 创建根实例
new Vue({
  el: '#example'
})

得到

<div id="example">
  <div>A custom component!</div>
</div>

二、注册局部组件

new Vue({
  // ...
  components: {
    // <my-component> 将只在父模板可用
    'my-component': {
  	  template: '<div>A custom component!</div>'
    }
  }
});

三、DOM模板解析说明

如果按下面这样写,模板元素会跑到外面,自定义组件 被认为是无效的内容,因此在渲染的时候会导致错误。

<table>
  <my-row>...</my-row>
</table>

image

用is改写

<table>
  <tr is="my-row"></tr>
</table>

四、组件data必须是函数

要点便是使每一个组件都拥有自己的闭包体,使每一个按钮之间的数据相互独立。

@Kelichao Kelichao added the vue label Feb 3, 2017
@Kelichao Kelichao changed the title 【vue】使用组件 【vue】组件的使用(1) Feb 3, 2017
@Kelichao Kelichao changed the title 【vue】组件的使用(1) 【vue】组件的使用(1)使用组件 Feb 3, 2017
@Kelichao Kelichao changed the title 【vue】组件的使用(1)使用组件 【vue】组件的使用(1)使用组件Vue.component Feb 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant