| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 09. 带你玩转组件 -> 正文阅读 |
|
[JavaScript知识库]09. 带你玩转组件 |
一.什么是组件化?组件化:封装的思想,把页面上‘可重用的部分’封装为‘组件’,从而方便项目的开发和维护, 这里可复用的部分,可以html,css和,js标签,封装到一个vue文件里面 二.全局组件和局部组件1.如何注册一个全局的组件? (1)位置: 在main.js(入口文件)进行注册; (2)语法:? import 组件对象 from 'vue文件路径' ? ? ? ? ? ? ? ? ? ?Vue.component(”组件名“,组件对象) (3)使用:把注册的组件名,当做标签进行使用 2.如何注册一个局部的组件? ?(1)位置:在一个单vue文件里面进行注册; ?(2):语法: import 组件对象 from 'vue文件路径' ? ? ? ? ? ? ? ? ? ? ? ? components:{ ? ? components与data是平级的 (3)使用:把注册的组件名,当做标签进行使用(作用范围:只能是在单vue的文件内) 上面已经介绍了组件的注册和使用,接下来说一下组件之间的通信 三.组件之间的通信(1)父亲向子传递数据? ? ? ?1.首先的明白谁是父,谁是子,谁被引入谁就是子 ? ? ? ?2.父组件通过 属性的方式传递数据 ? ? ? ?3.子组件采用props进行接收 ? ? ? 如果想要动态绑定需要加: (2)子向父传递数据? ? ? ? 1.语法:@自定义的事件名=“父methods里面函数名” ? ? ? ? 2.子组件想要传递数据给父组件需要用 ? ? ? ? ? this.$emit(“事件名”,要传递是数据)方法 ? ? ? ?3.代码演示:?? ? ? 子组件:
解析:给按钮帮绑定一个点击事件fn,在fn利用 this.$emit('aaa'(事件名), '李四'(要传递是数据))? ? 父组件:
解析:?@aaa(事件名)=show 在组件里面定义的事件名必须和子组件保持一致,后面跟的是show方法,利用val接收传递过来的数据,并且赋值给name (3)兄弟之间传值1.思路:两个组件的关系非常的复杂,通过父子组件通讯是非常麻烦的。这时候可以使用通用的组件通讯 方案:事件总线(event-bus) 2.图解 ?3.在这之前,可以创建一个文件夹,创建一个.js文件在js文件夹中
4.然后注册并且导入两个子组件
5.然后分别在两个组件中导入实例化的vue对象
6. 绑定事件并且发送数据(发送方)
? ? ?有emit说明是发送放,aaa是事件名,小明是数据 7.接收方
名字要和发送方的名字一样,点击按钮发生的事情是把传过来的小明赋值了给小红 8.总结: 空的Vue对象, 只负责注册事件?emit触发事件, 一定要确保$on先执行; 代码: 主文件:
兄弟1
兄弟2
四.scoped1.问题:当使用的样式改变的时候,其它组件的css也会跟着变,为了解决采用scoped 2.
?在style上加入scoped属性, 就会在此组件的标签上加上一个随机生成的data-v开头的属性 ?而且必须是当前组件的元素, 才会有这个自定义属性, 才会被这个样式作用到 ?? 3.总结: style上加scoped, 组件内的样式只在当前vue组件生效 ? 写的不好,希望对其有帮助。 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:46:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |