IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue组件和组件通信 -> 正文阅读

[JavaScript知识库]Vue组件和组件通信

Vue组件和组件通信

一.Vue组件概念, 创建注册使用; 封装组件

  • 概念 :

    组件是可复用的Vue 实例, 一个vue文件就是一个组件

    组件化 :封装的思想,把页面上 可重用的部分 封装为 组件,从而方便项目的开发和维护

    一个页面,可以拆分成一个个组件,一个组件就是一个整体, 每个组件可以有自己独立, 互不影响

    口诀: 哪部分标签复用, 就把哪部分封装到组件内

    组件内template只能有一个根标签

    组件内data必须是一个函数, 独立作用域

  • 组件创建, 注册, 使用

    在components文件夹下创建组件, 文件后缀为

    .vue

    创建后需要注册后再使用

    有两种注册方式全局和局部

    1.全局注册:

    全局入口在main.js, 在new Vue之上注册

    语法:

    import Vue from 'vue'
    import 组件对象 from 'vue文件路径'
    
    Vue.component("组件名", 组件对象)
    

    2.局部注册的方式:

    import 组件对象 from 'vue文件路径'
    
    export default {
        components: {
            "组件名": 组件对象
        }
    }
    

    注册名用驼峰命名

    调用组件

    <template>
      <div>
        <!-- 4. 组件名当做标签使用 -->
        <组件名></组件名>
        <组件名></组件名>
      </div>
    </template>
    
    <script>
    // 目标: 局部注册 (用的多)
    // 1. 创建组件 - 文件名.vue
    // 2. 引入组件
    import Pannel from './components/组件名
    export default {
      components: {
        "组件名": 组件对象
      }
    }
    </script>
    

组件使用总结:

  1. (创建)封装html+css+vue到独立的.vue文件中
  2. (引入注册)组件文件 => 得到组件配置对象
  3. (使用)当前页面当做标签使用
  • vue组件-scoped作用

    在style上加入scoped属性, 就会在此组件的标签上加上一个随机生成的data-v开头的属性, 且组件内的样式只在当前vue组件生效

<style scoped>

二. Vue组件通信

1.父传子

首先明确父和子是谁, 在父引入子 (被引入的是子

示例:

父: App.vue

子: Son.vue

创建 Son.vue

步骤一. 子组件内, 定义变量, 准备接收, 然后使用变量

<template>
  <div>
    <h3>姓名: {{ name }}</h3>
    <p>年龄: {{ age }}</p>
    <p>身高: {{ height }}</p>
  </div>
</template>

<script>
export default {
  props: ["name", "age", "height"],
};
</script>

步骤二. 父组件(App.vue)内, 要展示封装的子组件(Son.vue) 引入组件, 注册组件, 使用组件,

<template>
  <div>
    <Son name="大头儿子" age='4' :height="msg"></Son>
  </div>
</template>

<script>
import Son from './components/Son.vue'
export default {
  data(){
    return{
      msg:'0.5m'
    }
  },
  components:{
    Son
  }
};
</script>

什么时候需要父传子技术?

从一个vue组件里把值传给另一个vue组件(父->子)

父传子口诀(步骤)是什么?

子组件内, props定义变量, 在子组件使用变量父组件内, 使用子组件, 属性方式给props变量传值

直接在子组件中修改父组件传递过来的数据, 项目会报错

原因: 子组件修改, 不通知父级, 造成数据不一致性

vue 规定了props中的变量"只读" (也就是只能拿来渲染, 不能修改), 修改了会造成父子组件数据不一致

从父到子的数据流向就是单项数据流

那子组件如何才能修改父组件里的数据呢?

2.子传父

1.子组件内,当用户触发比如,点击按钮 的时候,自定义一个事件,并将数据通过该事件传递出去。

2.父组件内, 绑定子组件中的自定义事件和事件处理函数 语法: @自定义事件名=“父methods里函数名”

3.兄弟传值

组件通信-EventBus

常用于跨组件通信时使用

语法:

src/EventBus/index.js – 创建空白Vue对象并导出

在要传递值的组件(a.vue)

  • eventBus.$emit(‘事件名’, 值)

在要接收值的组件(b.vue)

  • eventBus.$on(‘事件名’, 函数体)
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:03:56  更:2022-05-24 18:05:33 
 
开发: 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/23 19:51:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码