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元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ...
随机推荐
- windows 端口转发
1.添加端口转发 netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.30.3.148 connectport= ...
- 开发系统app所遇到的问题及解决
1. 在源码环境中编译app时(使用mmm编译需要根据app写好Android.mk文件)遇到如下问题 error: Resource at colorPrimary appears in overl ...
- 使用phpunit测试yaf项目操作步骤
yaf + phpunit 使用phpunit对yaf进行测试的核心在于bootstrip文件的配置. *1. 首先在项目目录下创建tests文件,并在tests中创建phpunit.xml < ...
- nginx1.14.0版本https加密配置
修改host文件,为最后访问域名准备 C:\Windows\System32\drivers\etc host文件目录192.168.10.140 www.joyce.com 在最后添加这个自定义域名 ...
- TensorFlow实现回归
数据:fetch_california_housing(加利福尼亚的房价数据) 1.解析解法 import tensorflow as tf import numpy as np from sklea ...
- golang初识4 - Go 并发
Go的CSP并发模型实现:M, P, G Go实现了两种并发形式.第一种是大家普遍认知的:多线程共享内存.其实就是Java或者C++等语言中的多线程开发.另外一种是Go语言特有的,也是Go语言推荐的: ...
- json文件转换成excel
1.环境 python2.7 2.库 xlwt.demjson.json 3.code # -*- coding: utf-8 -*- import xlwt,demjson,json if __na ...
- http(数据格式)、postman(数组、id、断言) 小知识必看啊
- CentOS7 部署zabbix4.2
zabbix我就不介绍了吧,但是可能又有些小白,我还是介绍一下吧,嘿嘿! 一:什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提 ...
- Linux基本指令
常用目录文件作用 - / 根目录 - /bin 命令保存目录(普通用户就可以读取的命令) - /boot 启动目录,启动相关文件 - /dev 设备文件保存目录 - /etc ...