十二.vue组件

在Vue中如何添加字幕和语音功能 对于语音功能,我们使用了Web Speech API,通过语音合成和语音识别功能来实现文字转语音和语音转文字的功能。要在Vue应用程序中添加语音功能,您可以使用Web Speech API,该API提供了语音合成(Text-to-Speech)和语音识别(Speech Recognition)的功能。请注意,为了使上述代码正常工作,您需要确保浏览器支持相应的API,并在Vue组件中正确引入相关的库和API。对于字幕功能,我们使用了。要在Vue应用程序中添加字幕功能,您可以使用一些现有的字幕库,例如。 阅读详情


组件

mvvm 数据驱动 组件化
组件:网页上组成部分(预定义组件、自定义组件)
组件语法:
组件也是Vue的实例(new Vue 他有的属性 组件都有)

  // 全局组件(挂载到Vue上,可以在任意组件以及实例的模板中使用)
  Vue.component(组件名,{
    template:
      //注意:这里只允许出现一个容器
      `
      <div>
        xx
        xxx
      </div>
    `,
    data(){
      return {

      }
    },
    methods:{},
    watch:{},
    computed:{},
    components:{
    	SubTitle
  	}
  })
  /* 
  注意:
    1,template 必须 有且只有一个根组件(除非使用v-if 或者 v-else-if才能出现多个)
    2,data属性 必须是一个方法 返回这个对象 组件会被复用(形成自己作用域,每一次都会重新开辟空间 ,多次使用不会互相影响)
    3,组件有 自己作用域 属性。方法等 都只能在自己内部使用
  */

 //  局部组件(挂载到其他的组件或者实例上,只能在挂载的组件中使用)
//  定义局部组件
 const SubTitle = {
      template:`
        <div>
          我是一个局部组件 
          {{ title }} 
        </div>
      `,
      data(){
        return {
          title:"我是局部组件数据"
        }
      }
    }

// 其他组件中注册
Vue.component("Home",{
  template:`
    <div>
      <sub-title></sub-title>
    </div>
  `,
  components:{
    SubTitle
  }
})
/* 
局部组件 是在 其他组件 的components属性中注册
注意只能在 组件的组件的template使用,无法在外部使用
*/

组件通信

父–子 props通信

//通过props
/* 
子组件中 定义props属性 props是一个数组 数组中定义待接收的 属性列表
props待接收列表会 渲染到 组件实例的 属性上 跟data中的数据是同级别的
注意:
  props key不要和 实例中已经存在属性重名(如data中的属性以及计算属性)
 */

const Child = {
  template:`
 	<!--2.在内容中解析-->
    <div>
      {{ title }}
      {{ title2 }}
    </div>
  `,
 //数组接收使用的较少,尝试用对象定义类型
 //props:['title','title2']
    //1.首先定义接受的数据名以及类型
    props:{
            title:{
                type:String,
                required:true
            },
            title2:{
                type:String,
                default:"我是谁"
            }
        }
}
// 传递
Vue.component("Happy",{
  template: `
    <div>
	<!-- 在全局变量中内容给局部添加属性已携带数据 -->
      <child title="父组件的静态数据" :title2="msg"></child>
    </div>
  `,
  data(){
    return {
      msg:"父组件中动态数据"
    }
  },
  components:{
    Child
  }
})

// props验证

{
  props:{
    a:String, // 只验证 类型,可以简写,直接写类型的值
    b:[String,Number], // 只验证类型,类型有多个 扔到数组中
    c:{
      type:String,
      required:true
    },
    d:{
      type: Number,
      default:10
    },
    e:{
      type:Array, // 如果类型是数组或者对象,默认值应该是函数返回默认值
      default: ()=> [1,2,3,4]
    }
  }
}

子向父通信 自定义事件

子组件中
methods:{
	a(){
		this.$emit("事件",参数); //触发子组件的一个自定义的事件
	}
}
在父组件中
  <child @自定义事件="fn"></child>

  {
    methods:{
      fn(参数){
        // 触发
      }
    },
    components:{
    	SubTitle
  	}
  }
例
子组件中
const subTitle = {
        template:`
        <h4>
        局部组件
        {{title}}
        <!--2.传输方法调用-->
        <button @click=a>按钮</button>
        </h4>
        
        `,
        data(){
            return {
                title:"传给全局用"
            }
        },
        methods:{
        	//1.定义传输方法,自定义一个事件名b,传参this.title
            a(){
                this.$emit("b",this.title)
            }
        }
    }
父组件中
Vue.component("Happy",{
        template:`
            <div>
                全局组件
                <!-- 3.自定义事件b绑定方法fn,注意一定要写在子组件的使用中 -->
                <sub-title @b="fn"></sub-title>
            </div>
        `,
        methods:{
            //4.定义方法fn,接收参数输出参数
            fn(e){
                console.log(e);
            }
        },
        components:{
            subTitle
        }
    })

兄弟组件通信 自定义事件 事件中心总线 (event bus)

利用一个第三方的实例 bus(event bus)
bus 触发自定义事件
由bus来监听这个事件
实例.$on(事件,回调)

const bus = new Vue();

bus.$emit("事件",参数)

bus.$on("事件",fn)

例
兄弟1定义一个事件传参,准备触发
methods: {
   a(){
   bus.$emit('aaa', this.msg)
   }
 }
兄弟2接收事件定义事件内容,需要钩子函数
mounted(){
   bus.$on("aaa",(msg)=>{
   this.msg = msg;
   alert('收到了兄弟')
}) 

ref组件通信 (⭐⭐⭐)

常用父组件中:都写在mounted钩子函数中
  <child ref="child"/>
this.$refs.child 获取子组件的实例
this.$refs.child.xx直接获取子组件data中的数据
this.$refs.child.xx() 直接调用子组件的方法

$parent $children

都写在mounted钩子函数中
常用子组件中
  this.$parent直接拿到父组件的实例
父组件中
  this.$children 拿到的是 父组件中的所有子组件(数组)

provide inject

父组件
  {
    provide:{
      a:10,
      b:20
    },
    template:'',
    data,
    xx
  }
  
  子组件中
  {
    inject:['a','b'] // 自动灌入到子组件上作为属性 所以可以直接通过this.a this.b拿到
  }
provide,indeject练习
<script type="text/javascript">
    const Title1={
        template:`
            <div>
                <h4>局部1111</h4>
                {{msg}}
            </div>
        `,
        data(){
            return {
                msg:''
            }
        },
        inject:['a','b'],
        mounted(){
            this.msg=this.a+this.b
        }
    }
    Vue.component("Happy",{
        template:`
            <div>
                <h4>全局组件</h4>
                <title1 ref="child"></title1>
            </div>
        `,
        provide:{
            a:"我是谁",
            b:20
        },
        components:{
            Title1
        }
    })
    const vm =new Vue({
        el:"#app"
    })
</script>

支付宝H5支付唤醒协议全解析:从alipays://到动态orderSuffix的抓取与拼接 本文深入解析支付宝H5支付唤醒协议,从alipays://协议设计到动态orderSuffix参数的抓取与拼接,详细介绍了支付宝H5支付的底层机制。内容包括协议架构剖析、动态令牌生成与捕获、浏览器兼容性解决方案以及安全机制设计,为开发者提供全面的技术指南和实践建议。 阅读详情

相关推荐

数据湖是什么?有什么优势?与数仓区别?未来的发展?

数据湖是什么?有什么优势?与数仓区别?未来的发展?一、什么是数据湖二、数据湖的发展三、数据湖有哪些优势四、数据湖应该具备哪些能力五、数据湖的实现遇到了哪些问题六、数据湖与数据仓库的区别七、为什么要做数据湖?区别在于?八、数据湖挑战九、湖仓一体十、目前有哪些开源数据湖组件 来源:大数据DT 一、什么是数据湖 数据湖是一种不断演进中、可扩展的大数据存储、处理、分析的基础设施;以数据为导向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储、多模式处理与全生命周期管理;并通过与各类外部异构数据

一个写湿的程序猿 9149

vue基础第1-3天

vue基础学习

qq_50541792的博客 452

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库创建数据库安装 Entity Framework配置数据库连接字符串添加实体模型类添加数据库上下文类添加控制器类运行测试 创建数据库 创建【全局数据库名】为 demodb 的Oracle数据库,用 SYSTEM 用户连接成功后创建【用户名】为 DJIANG 的用户,并授予该用户 DBA 角色 安装 Enti...

idjiang的博客 2537

Vue----组件基础

Vue----组件基础 1 单页面应用程序 1.1 什么是单页面应用程序 1.2 单页面应用程序的特点 1.3 单页面应用程序的优缺点 1.3.1 单页面应用程序的优点 1.3.2 单页面应用程序的缺点 1.4 如何快速创建 vue 的 SPA 项目 2 vite 的基本使用 2.1 创建 vite 的项目 2.1.1 在对应的文件夹下打开命令窗口 2.1.2 运行 npm init vite-app 项目名称 2.1.3 运行 cd 项目名称 2.1.4 运行 npm install 2.1.5 运行 2

emmmm..... 457

PICO4 VR开发调试神器:用Live Preview Plugin实现电脑串流,告别反复打包烧录的繁琐流程

本文详细介绍了PICO4 VR开发中如何使用Live Preview Plugin实现电脑串流,显著提升开发效率。通过实时预览和调试功能,开发者可以避免反复打包烧录的繁琐流程,特别适用于Unity环境下的VR应用开发。文章涵盖环境配置、连接设置、实时调试技巧及性能优化方案,是PICO4开发者的必备指南。

weixin_34110970的博客 418

人工智能训练师认证教程(5)使用MONAI进行医学影像分析的完整指南

本文介绍了使用MONAI框架进行医学影像分析的全流程。首先详细说明了环境搭建步骤,包括PyTorch和MONAI的安装配置。然后以肺部CT 3D分割为例,分步骤讲解了数据准备与预处理、3D UNet模型构建、训练配置(DiceLoss损失函数、Adam优化器等)以及训练验证循环的实现。文章还包含推理可视化方法和模型导出为ONNX格式的部署方案,并强调了医学影像分析中的数据格式适配、强度归一化、显存优化等关键注意事项。最后指出MONAI的医学专用组件可大幅简化开发流程,建议后续可探索SwinUNETR等进阶方

华为开发者布道师,天府英才计划,致力于大数据+AI 的应用创新,助力企业与个人AI创新赋能。 1208

Vue组件基础

动态组件是利用类似于继承关系的原理,所有的组件都有公共的父类component,所有组件的定义都是component的子类,这样不同组件都是component的子类,所有的子类都是父类型的。比较组件的局部引用和全局引用,局部引用需要明确组件的定义文件位置,全局引用不需要明确组件的定义文件位置,但是需要在使用前有明确的全局注册。组件使用过程中,组件的来源对组件的使用有很大的影响。组件的具备引用方式是组件定义完成后,不注册为Vue的全局对象,使用时需要找到对应的组件定义文件,显示的在使用处注明。

seacean2000的专栏 622

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 746

vue组件基础

vue组件基础组件组件关系组件通信父--子 props通信子向父通信 自定义事件兄弟组件通信 自定义事件 事件中心总线 (event bus)ref组件通信 (记住)$parent $childrenprovide inject 组件 mvvm 数据驱动 组件化 组件:网页上组成部分(预定义组件、自定义组件) 组件语法: 组件也是Vue的实例(new Vue 他有的属性 组件都有) // 全局组件(挂载到Vue上,可以在任意组件以及实例的模板中使用) Vue.component(组件名,

qq_50220069的博客 193

Euro-NCAP-HWA测试流程中文版V1.1(2023发布)

在本协议中,使用了以下术语:Vehicle undertest (VUT) – 指根据本规程测试的车辆,车上有碰撞前的碰撞缓解或避免系统Global VehicleTarget (GVT) – 指本协议中使用的车辆目标,其定义见TB025—Euro-NCAP全球车辆目标规范v1.0辅助其他车辆(SOV)--指最新的 AEB VRU 测试规程中定义的 "大型障碍车辆"(而非机器人控制的平台),用于本规程中的 "切出 "测试。Time To Collision (TTC) – 指在VUT碰撞GVT之前的剩余时间

小明师兄的博客 596

智能硬件产品 App 全球发布 第 1 章:全球 App 发布战略设计

本章阐述智能硬件 App 全球发布战略,涵盖市场分析、竞争格局、用户画像及资源配置。通过制定可执行的全球化推广路径,整合地区法规合规、渠道分发策略与营销活动设计,助力团队快速进入主流商店并确立品牌影响力。同时构建可量化的 KPI 监控体系,指导项目进度追踪与效果复盘,确保产品迭代持续优化,降低运营总成本。

moton2017的博客 156

Vuejs单文件组件十二

// app Vue组件 <template> <div> <School></School> </div> </template> <script> import School from './School.vue' export default { name: 'App', components: { School } } </script> //入口文件 import App fr

qq_50563868的博客 155

半导体物理基础:载流子输运理论_(4).载流子浓度与费米能级

费米能级(Fermi Level)是描述半导体中电子和空穴能量分布的基准能级。在绝对零度下,费米能级以下的所有能级都被电子占据,费米能级以上的所有能级都是空的。随着温度的升高,电子会获得足够的能量跃迁到费米能级以上的能级,形成导带中的自由电子和价带中的空穴。费米能级在半导体中的位置取决于掺杂浓度和温度。对于本征半导体,费米能级位于禁带的中心;对于掺杂半导体,费米能级会偏移,具体位置取决于掺杂类型和浓度。载流子浓度(Carrier Concentration)是指半导体中自由电子和空穴的数量密度。

2401_87715305的博客 832

前端​Vue与uni-app中的九宫格、十二宫格和十五宫格菜单组件实现

在前端开发中,九宫格、十二宫格和十五宫格菜单按钮是一种常见的布局方式,它们能有效地展示大量数据,并为用户提供便捷的操作。对于多宫格布局的实现,我们将使用Uni-app框架,它支持跨平台开发,可以轻松地构建出满足需求的九宫格、十二宫格和十五宫格布局。在循环中,我们可以使用插值表达式来显示按钮的文本内容,并根据传入的参数调整按钮的位置和样式。组件,我们需要在父组件中引入并注册该组件,然后根据需要传入相应的参数和事件处理函数。的组件,该组件将用于显示九宫格、十二宫格和十五宫格的菜单按钮。在组件中,我们将使用。

chenchuang0128的博客 1527

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

前端Vue与uni-app中的九宫格、十二宫格和十五宫格菜单组件实现

在前端开发中,九宫格、十二宫格和十五宫格菜单按钮是一种常见的布局方式,它们能有效地展示大量数据,并为用户提供便捷的操作。对于多宫格布局的实现,我们将使用Uni-app框架,它支持跨平台开发,可以轻松地构建出满足需求的九宫格、十二宫格和十五宫格布局。在循环中,我们可以使用插值表达式来显示按钮的文本内容,并根据传入的参数调整按钮的位置和样式。组件,我们需要在父组件中引入并注册该组件,然后根据需要传入相应的参数和事件处理函数。的组件,该组件将用于显示九宫格、十二宫格和十五宫格的菜单按钮。在组件中,我们将使用。

chenchuang0128的博客 1221

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VUE L 组件化编程 ⑩②

代码演示 🎊--Vue中使用组件的三大步骤:一、定义组件(创建组件)二、注册组件三、使用组件(写组件标签)一、如何定义一个组件?使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但也有点区别;区别如下:1.el不要写,为什么?——— 最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器。2.data必须写成函数,为什么?———— 避免组件被复用时,数据存在引用关系。

m0_61490399的博客 323

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

前端vue 宫格组件提供常见九宫格菜单组件,扩充性好,可切换九宫格 十二宫格 十五宫格

在本文中,我们将介绍如何使用Vue和Uni-app快速实现一个九宫格、十二宫格和十五宫格的菜单组件。

chenchuang0128的博客 2376

Vue学习总结(十二)——组件化

1、什么是组件化 组件化的思想: 如果我们将页面中所有的逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。 但如果,我们将一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,那么之后整个页面的管理和维护就变得非常容易了。 ...

third_的博客 434

Vue学习(十二)-Vue的组件化开发

组件化开发 引子 组件化开发是Vue里卖弄非常重要的一个思想 我们将一个完整的页面分成很多个组件 每个组件都用于实现页面的一个功能块 而每一个组件又可以进行细分 Vue.js 提供了一种抽象的,可以让我们开发出一个个可复用的小组件来构造我们的应用 任何的应用都会被抽象成一颗组件树 基础 所谓的组件化开发,实际上就是把可复用的代码抽成一个模板,能在多个地方重复...

weixin_44038881的博客 340

Vue源码学习(十二)异步组件

本文主要讲述vue中的异步组件,如果你看完本文相信你应该对vue中的异步组件有着相对深刻的理解, 如果你还不知道vue中异步组件是什么,请参考vue异步组件 为什么要异步组件 异步组件是vue性能优化的一种方式,主要目的是为了解决页面引入很多组件导致打包后的js体积过大,我们知道同样条件下,文件体积越大,请求耗时越长,因此 vue提供了异步组件,当页面中通过异步方式来声明(全局)或者注册(局部)组...

TyrionJ的博客 813

vue(十二) 组件二 动态组件(Component)和异步组件(defineAsyncComponent)

vue(十二) 组件二 动态组件(Component)和异步组件(defineAsyncComponent)

chengcheng9876的博客 4334

Vue.js入门系列(十二):深入理解Vue.js组件

/ 定义'});// 注册// 在父实例的模板中使用new Vue({el: '#app'});

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

VUE学习(十二) 父组件传值给子组件

三.子组件传值给fuzujian。一.vue2.x写法。二.VUE3.x写法。

easyboot的专栏 157

前端Vue自定义精美宫格菜单按钮组件 可设置一行展示个数 可设置成九宫格 十二宫格 十五宫格

十五宫格菜单-- 推荐宫格菜单 rowNum:一行展示多少个 categoryList:菜单数组 menuClick:菜单点击 -->十二宫格菜单-- 推荐宫格菜单 rowNum:一行展示多少个 categoryList:菜单数组 menuClick:菜单点击 -->九宫格菜单

chenchuang0128的博客 1355

Vue2 第十二节 Vue组件化编程(一)

1.模块与组件,模块化与组件化概念2. 非单文件组件3. 组件编写注意事项4. 组件的嵌套。

星星之火的语言c学习 599

【Vue源码】第十二节组件化之认识resolveConstructorOptions和mergeOptions

resolveConstructorOptions mergeOptions方法的调用在_init中,我们从之前了解到_init是在new Vue时,这个一般发生在两个地方: 外部代码,即我们自己new Vue; 子组件内部调用new Vue。 Vue.prototype._init = function (options?: Object) { // 如果是子组件 if (optio...

未来可期 673
上一篇: 十一.vue计算属性-处理data
下一篇: 十三.插槽
奥D
博客等级 码龄6年 67粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值