vue--组件基础
组件是可复用的 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--组件基础的更多相关文章
- Vue组件基础用法
		前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ... 
- Vue组件基础
		<!DOCTYPE html><html> <head> <meta charset="utf-8"> ... 
- vue组件基础之父子传值
		可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ... 
- Vue 组件基础完整示例
		<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- vue组件基础之创建与使用
		一.创建组件 <script src="vue.js"></script> <!--引入vue.js文件--> <div id=" ... 
- Vue.js 学习笔记之四:Vue 组件基础
		到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ... 
- Vue组件基础知识总结
		组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ... 
- Vue 组件基础完整示例2
		简介此页面可以直接复制运行,包含以下应用: Vue slot插槽使用Vue v-model使用Vue props使用父子组件数据传递element-ui使用HTML方式注册子组件,可以将子组件数据写在 ... 
- vue—组件基础了解
		什么是组件? 组件是vue中的一个可复用实例,所以new Vue()是vue中最大的那个组件,根组件,有名字,使用的时候以单标签或双标签使用 vm = newVue() 是最大的组件,具有很多实用性的 ... 
- Vue组件的基础用法(火柴)
		前面的话 组件(component)是Vue最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ... 
随机推荐
- 动态调用WebService(传对象返回接受对象)
			基础属性//客户端代理服务命名空间,可以设置成需要的值. string ns = string.Format("WindowsForms"); private Assembly a ... 
- Azure CosmosDB (7) 分区键Partition Key
			<Windows Azure Platform 系列文章目录> Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale), ... 
- 在已安装64位oracle的服务器安装32位客户端
			应用场景:服务器操作系统是win2012 64位,原先安装了64位oracle12,后来系统增加导入excel的功能,网站必须启用32位兼容模式,这时候发现原有的页面打不开,提示: 试图加载格式不正确 ... 
- WindowsDenfender
			c:\Program Files\Windows Defender>MpCmdRun.exe -scan -scantype 3 -file "D:\手动更新病毒库" -Di ... 
- 自动编译批处理设置(MSBuild)
			基本设置,如果想更改可以设置. @echo off rem --------------------------------- rem ----作成者:李暁賓--------------- rem - ... 
- HTML 部分非常用标签
			标签 描述 示例 <!DOCTYPE> 定义文档类型. HTML5 : <!DOCTYPE html> HTML4.* :<!DOCTYPE HTML PUBLIC & ... 
- Spring的IOC原理
			1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机 ... 
- Java程序国际化学习代码一
			Java程序国际化初识 1.基本思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每 ... 
- Java BASE58 以及 md5,sha256,sha1
			package cn.ubibi.wsblog.utils; import java.io.UnsupportedEncodingException; import java.math.BigInte ... 
- Filter简易实现.
			一 代码结构: 二 代码 Test.java: package com.demo.test; import com.demo.filter.ApplicationFilterChain; import ... 
