vue-learning:24 - component - 目录
component 组件
- 组件的概念
Vue 组件同时也都是 Vue 实例,可接受相同的选项对象option(除了一些根级特有的选项) 和使用相同的生命周期钩子,以及模板调用方式。 - 组件的构建和注册
- 构建:
com = Vue.extend(option) - 注册:
- 全局注册:
Vue.component('my-com', com) - 局部注册:
vm.components: {'my-com': com}
- 全局注册:
- 语法糖:
Vue.component('my-com',option)vm.components('my-com': option) - 组件命名规范
- 构建:
组件三大API:
prop/event/slot
prop- 字符串数组形式:
props: ['prop1', 'prop2', ...] - 对象形式:
js props: {prop1: Number} props: { prop1: { type: [Number, String], required: true, default: 100, //当默认值是对象或数组时,必须从函数返回值获取 () => { return value } validator: (value) => { // do somethings return Boolean return result } } } - prop的命名规范
- 动态prop(除字符串外,其它类型传入都需要使用动态prop,即v-bind绑定)
- 单向数据流和prop实现双向绑定.sync修饰符
- 非prop特性
- 被替换或合并
- 禁用继承
inheritAttr: false $attr
event
v-on / $on监听事件$once一次性事件$emit触发事件$off卸载事件监听$listenersv-on绑定监听器集合(除原生监听事件).native原生事件修饰符.sync双向绑定修饰符model属性
slot
- 普通插槽
html <slot></slot> - 插槽提供默认值
html <slot>default content</slot> - 具名插槽
html <slot name="someName"></slot> <!-- 组件调用 --> <my-com> <template v-slot:somName></template> <my-com> - 作用域插槽
html <slot :prop="value"></slot> <!--组件调用 --> <my-com> <template v-slot='childValue'>{{ cilidValue.value}}</template> </my-com> - 独占默认插槽的写法
html <some-component v-slot="childValue"> {{ childValue.value }}</some-component> <some-component v-slot:default="childValue"> {{ childValue.value }}</some-component> - 解构插槽prop
html <my-com v-slot="{value}">{{ value }}</my-com> <!-- 重命名 --> <my-com v-slot="{value: otherName}">{{ otherName }}</my-com> <!-- 重命名并提供默认值 --> <my-com v-slot="{value: {otherName: defaultValue}}">{{ otherName }}</my-com> - 动态插槽名
html <my-com> <template v-slot:[dynamicSlotName]></template> </my-com> v-slot的简写#
html <my-com> <template #somName></template> <my-com>- 模板编译作用域
父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。
- 字符串数组形式:
- 组件依赖注入
provideinject
- 组件实例的引用
ref / $refs$root$parent$children自定义扩展方法
- 组件间的通信
- 父子组件通信
prop / $emit - 嵌套组件
$attrs/$liteners - 后代组件通信
provide / inject - 组件实例引用
$root/$parent/$children/$refs - 事件总线
const Bus = new Vue() - 状态管理器
Vuex
- 父子组件通信
- 动态组件
<component is="com-name"></component> - 异步组件
function 内置组件
transiton/keep-alive/component- 其它
- 组件的递归调用
- 组件的循环引用
v-once创建静态组件
vue-learning:24 - component - 目录的更多相关文章
- vue中extend/component/mixins/extends的区别
vue中extend/component/mixins/extends的区别 教你写一个vue toast弹窗组件 Vue.extend构造器的延伸
- vue中的项目目录assets和staitc的区别
vue中的项目目录assets和staitc的区别 在进行发行正式版时,即为npm run build编译后, assets下的文件如(js.css)都会在dist文件夹下面的项目目录分别合并到一个文 ...
- 第六章 组件 59 组件切换-使用Vue提供的component元素实现组件切换
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Vue Login Form Component
Vue Login Form Component Account Login <template> <div> <slot></slot> <el ...
- Vue Learning Paths
Vue Learning Paths Vue Expert refs https://vueschool.io/articles/vuejs-tutorials/exciting-new-featur ...
- vue 组件复用 - component
vue 组件复用 - component vue 组件复用 就是对 component 标签的使用 先看图 下图看使用 结果: 可以看到 在箱包 这一项,我将banner 组件用了两次,我 每次 点击 ...
- 从零开始:一个正式的vue+webpack项目的目录结构是怎么形成的
如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手.一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起 ...
- vue源码分析—Vue.js 源码目录设计
Vue.js 的源码都在 src 目录下,其目录结构如下 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持 ├── ser ...
- vue项目开发基本目录结构
§ 目录结构 . ├── build/ # Webpack 配置目录 ├── dist/ # build 生成的生产环境下的项目 ├── src/ # 源码目录(开发都在这里进行) │ ├── ass ...
随机推荐
- Inno Setup 设置开机启动
案1: 将快捷方式添加到“启动”文件夹 [Tasks] Name: "startupicon"; Description: "{cm:CreateQuickLaunchI ...
- SDUT-2139_从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽 ...
- 25-1 request模块介绍
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
- Cacti 加入多台主机带宽汇聚
前面我写了一个cacti加入主机带宽监控的博客.能够參考http://blog.csdn.net/dai451954706/article/details/35272465 .有时可能 ...
- 2019-2-27-如何替换一个-exe-的图标
title author date CreateTime categories 如何替换一个 exe 的图标 lindexi 2019-02-27 20:33:16 +0800 2019-2-27 2 ...
- @codeforces - 1086F@ Forest Fires
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个无穷大的方格图,每个方格内都种了棵树. 一开始点燃了 n 棵 ...
- 2019-8-31-dotnet-通过-WMI-拿到显卡信息
title author date CreateTime categories dotnet 通过 WMI 拿到显卡信息 lindexi 2019-08-31 16:55:58 +0800 2019- ...
- day6_python之configparser_模块
configparser_模块是为了解析.ini文件的配置 a.ini [xiechao] name=xiechao age=18 is_admin=True salary=1000000.12 [x ...
- mosquitto/openssl 在RK3288上的编译以及MQTT客户端的代码示例
1,依赖库openssl 的交叉编译 (1)配置编译器信息 setarch i386 ./config no-asm shared --cross-compile-prefix=arm-linux-a ...
- 分布式TensorFlow集群local server使用详解
通过local server理解分布式TensorFlow集群的应用与实现. 简介 TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试. Local ...