组件( Component )是 Vue.js 最核心的功能,也是整个框架设计最精彩的地方,当然也是最难掌握的
上侧图中是个很常见的聊天界面,有 些标准的控件,比如右上角的关闭按钮、输入框、发送按钮等。
场景举例
上面的需求虽然有点变态,但却是业务中很常见的,那就是一些控件、 JavaScript 功能的复用。
没错, Vue.js的组件就是提高重用性的,让代码可复用,当学习完组件后,上面的问题就可以轻松搞定了,再也不用害怕产品经理的奇随需求
组件注册
回顾下创建 Vue 实例的方法:
组件Component与之类似,需要注册后才可以使用。注册有全局注册和局部注册两种方式。
①全局组件:任何Vue 实例都可以使用
②局部组件:只有在该实例作用域下有效(对比全局与局部变量记忆)
组件注册-全局
全局注册组件语法:
my-component 就是注册的组件自定义标签名称,推荐使用小写加减号分割的形式命名(即kebab-case短横线分隔命名法,此外还有PascalCase首字母大写命名即大驼峰法)
案例↓
要在父实例中使用这个组件,必须要在实例创建前注册,之后就可以用<组件名></组件名>形式来使用组件了,示例代码如下
<div id="app">
<my-component></my-component>
</div>
<script type="text/javascript">
Vue.component('my-component',{
//选项
})
var app = new Vue({
el:'#app'
});
</script>
此时打开页面还是空白的,因为注册的组件没有任何内容,在组件选项中添加 template(模板)就可以显示组件内容了。
示例代码如下
<div id="app">
<my-component></my-component>
</div>
<script type="text/javascript">
Vue.component('my-component',{
//选项
template:"<div>组件内容</div>" //添加模板内容
})
var app = new Vue({
el:'#app'
});
</script>
渲染结果为:↓
全局组件注册步骤小结:
①注册组件component并命名
②添加模板template内容
③通过自定义组件名调用组件
<div id="app">
<!--3.通过自定义组件名调用组件-->
<my-component></my-component>
</div>
<script type="text/javascript">
/*1.注册全局组件-组件名my-name*/
Vue.component('my-component',