组件是可复用的 vue 实例,它与new Vue 接收相同的参数,例如:data、methods、computed、watch 以及生命周期钩子。除了 el 等。

1、组件注册必须有一个组件名。

  组件名有两种命名方式:base-button 或者 BaseButton。

1、data 必须是一个函数。一个组件的data必须是一个函数。

2、组件注册有两种:局部注册、全局注册。

  全局注册:的组件可以用在其被注册之后的任何(通过 new Vue) 新创建的 Vue 根实例,也包括其组件树中的所有子组件的模板中。全局注册往往是不够理想的。

  比如,如果你使用一个像 webpack 这样的构建系统,全局注册所有的组件意味着即便你已经不再使用一个组件了,它仍然会被包含在你最终的构建结果中。这

  造成了用户下载的 JavaScript 的无谓的增加。

  局部注册:的组件在其子组件中不可用。

3、通过 props 向子组件传递数据。

  一个组件默认可以拥有任意数量的 props,任意值都可以传递给任何 prop。

     Vue.component('my-button', {
template: `<button>{{text}}</button>`,
props: ['title', 'author', 'isTruthiness', 'phone', 'list']
})
// props 还可以写成对象,并且都有指定的值类型
Vue.component('my-button', {
template: `<button>{{text}}</button>`,
props: {
title: String,
author: Object,
isTruthiness: Boolean,
phone: Number,
list: Array
}
})

  单向数据流,单向下行绑定。

  ① 如果子组件想要改变或者使用父组件传递的props最好是定义一个本地的data,然后将props作为初始值赋值给它。

       props: ['initcounter'],
data: function() {
return {
counter: this.initcounter
}
}

  ②这个props以原始值传入,并且需要进行转换,此时最好用这个prop定义一个计算属性。

       props: ['numberlist'],
computed: {
targetlist: function() {
return this.numberlist.sort().reverse();
}
}

  ③ props 验证,这在一个可能会被别人用到的组件中是非常有用的。

     Vue.component('my-component', {
props: {
propA: String,
porpB: [String, Number],
propC: {
type: String,
required: true
},
propD: {
type: Number,
default: 100
},
propE: {
type: Object,
default: function() {
return { message: 'world peace' }
}
},
propF: {
// 自定义校验方法
validator: function(value) {
return ['success', 'fail', 'complete'].indexOf(value) !== -1;
}
}
}
})

4、每个组件只能有一个根元素。

5、通过事件向父级组件发送消息。

  通过 $emit(eventName, params) 向父级发送事件,父级通过 v-on 监听事件来执行。在父级可以通过 $event 来访问被抛出的参数。

6、is="componentA"  就是把这个标签当做这个组件componentA 。解析DOM模板时注意事项。

vue--组件基础的更多相关文章

  1. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  2. Vue组件基础

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  3. vue组件基础之父子传值

    可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...

  4. Vue 组件基础完整示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. vue组件基础之创建与使用

    一.创建组件 <script src="vue.js"></script> <!--引入vue.js文件--> <div id=" ...

  6. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  7. Vue组件基础知识总结

    组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...

  8. Vue 组件基础完整示例2

    简介此页面可以直接复制运行,包含以下应用: Vue slot插槽使用Vue v-model使用Vue props使用父子组件数据传递element-ui使用HTML方式注册子组件,可以将子组件数据写在 ...

  9. vue—组件基础了解

    什么是组件? 组件是vue中的一个可复用实例,所以new Vue()是vue中最大的那个组件,根组件,有名字,使用的时候以单标签或双标签使用 vm = newVue() 是最大的组件,具有很多实用性的 ...

  10. Vue组件的基础用法(火柴)

    前面的话 组件(component)是Vue最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ...

随机推荐

  1. @cacheevict 清除多个key

    @Caching(evict={@CacheEvict(“a1”),@CacheEvict(“a2”,allEntries=true)}): 参考:https://www.cnblogs.com/ha ...

  2. 记不住 Linux 命令?这三个工具可以帮你(转)

    链接:https://zhuanlan.zhihu.com/p/30668155 Linux 桌面从开始的简陋到现在走了很长的路.在我早期使用 Linux 的那段日子里,掌握命令行是最基本的 —— 即 ...

  3. Schema、API Schema与MFn

    大部分知识都是相通的,Maya和USD在设计上有很多相似之处,USD的Schema粗看很难理解,但实际上与Maya的MFn有着异曲同工之处.这篇文章会简单介绍一下这两个知识点,做个对比,了解下它们在各 ...

  4. USD在CentOS7.0操作系统下的安装方法

    最近Pixar的开源USD软件很火,官方在Introduce中明确讲到这个软件的设计开发目标是增强艺术家协作,减少不确定因素,最大化资产版本迭代效率,追求更大的承载能力. 当今行业中传统的线性的制作方 ...

  5. java Servlet生成随机验证码

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...

  6. MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

    1.编辑框添加变量,并选择变量类型为CString. 2.  使用“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算.

  7. MySQL-exists和in的区别

    SQL查询中in和exists的区别分析 对于一些不可不免的查询场景,我们难免要用到子查询 那么in和exists那个的效率更高一点呢 SQL查询中in和exists的区别分析 select * fr ...

  8. [UE4]Spline Mesh Actor

    作用: 1.按照Spline设置的轨迹,进行显示网格物体. 曲线模型 一.赋值Static Mesh,任意的Static Mesh都可以. 二.调整方向 三.Spline Mesh Actor有2个端 ...

  9. Preloading Your ASP.NET Applications

    You may have noticed that the first request to an ASP.NET Web site takes longer than subsequent requ ...

  10. 设计模式<1>------单例模式和原型模式------创建型

    原文引自:http://www.cnblogs.com/lonelyxmas/p/3720808.html 单例模式 单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并 ...