Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Vue自定义组件-动态组件

Vue自定义组件-动态组件

作者头像
苦咖啡
发布于 2019-12-11 04:23:44
发布于 2019-12-11 04:23:44
1.1K00
代码可运行
举报
文章被收录于专栏:我的博客我的博客
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
  <div class="page-list">
    <span class="list-txt">{{ title }}</span>
    <!-- <ex-btn
      v-if="current == 'ex-btn'"
      v-on:myClick="myClick"
      :msg="msg"
    ></ex-btn>
    <ex-btn2 v-else v-on:myClick="myClick" :msg="msg">
      <img slot="icon" src="xxx.png" />
    </ex-btn2> -->
    <component
      keep-alive
      :is="current"
      v-on:myClick="myClick"
      :msg="msg"
    ></component>
  </div>
</template>
<script>
import btn from './button.vue'
import btn2 from './but2.vue'

export default {
  props: {
    title: { default: '标题' },
    msg: { default: '按钮' },
    current: { default: 'ex-btn' }
  },
  components: {
    'ex-btn': btn,
    'ex-btn2': btn2
  },
  methods: {
    myClick: function () {
      console.log('按钮被点击')
      this.$emit('myClick')
    }
  }
}
</script>

//使用
<template>
  <div id="list">
    <ex-list current="ex-btn2" title="标题1" msg="按钮1"></ex-list>
    <ex-list current="ex-btn" title="标题2" msg="按钮2"></ex-list>
    <ex-list
      current="ex-btn"
      title="标题3"
      msg="按钮3"
      v-on:myClick="test"
    ></ex-list>
    <ex-list
      ref="btnlist"
      current="ex-btn"
      title="标题4"
      msg="按钮4"
      v-on:myClick="test"
    ></ex-list>
  </div>
</template>
<script>
import myList from '../../components/demo/list.vue'
export default {
  name: 'list',
  components: {
    'ex-list': myList
  },
  methods: {
    test: function () {
      console.log('自定义')
      console.log('属性', this.$children)
      console.log('属性', this.$refs.btnlist.title)
    }
  },
  beforeCreate: function () {
    console.log('beforeCreate')
  }, // 组件实例化之前
  created: function () {
    console.log('created')
  }, // 组件实例化了
  beforeMount: function () {
    console.log('beforeMount')
  }, // 组件写入dom结构之前
  mounted: function () { // 组件写入dom结构了
    console.log('mounted')
    console.log(this.$children)
    console.log(this.$refs)
  },
  beforeUpdate: function () {
    console.log('beforeUpdate')
  }, // 组件更新前
  updated: function () {
    console.log('updated')
  }, // 组件更新比如修改了文案
  beforeDestroy: function () {
    console.log('beforeDestroy')
  }, // 组件销毁之前
  destroyed: function () {
    console.log('destroyed')
  }// 组件已经销毁
}
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年12月1日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue自定义组件-事件使用
<!-- 组件 --> <template> <button @click="btnClickEvent"> <!-- 插件属性 --> <slot name="icon"></slot> <span>{{ msg }}</span> </button> </template> <script> export default { props: { msg: { default: '下载' } }, methods: { btn
苦咖啡
2019/12/11
4950
包学会之浅入浅出Vue.js:结业篇
本篇我们会详细分析下如何完成由多个组件组成一个复用组件的开发流程。
蔡述雄
2018/01/15
11.8K15
包学会之浅入浅出Vue.js:结业篇
VUE入门基础
1、CLI# 全局安装 vue-cli npm install --global vue-cli# 创建一个基于 webpack 模板的新项目 vue init webpack my-project# 安装依赖,走你 cd my-project npm install
javascript艺术
2021/05/28
1K0
VUE入门基础
Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
组件模板:     之前:       <template>         <h3>我是组件</h3><strong>我是加粗标签</strong>       </template>     现在:  必须有根元素,包裹住所有的代码       例如:              <script>           var Home={                          template:'#aaa'                 };                   window
用户1197315
2018/01/22
5900
Vue成神之路之全局API
vue.js——开发版本:包含完整的警告和调试模式 vue.min.js——生产版本:删除了警告,进行了压缩
小胖
2018/12/12
3.1K0
Vue成神之路之全局API
Vue父子组件生命周期
Vue实例需要经过创建、初始化数据、编译模板、挂载DOM、渲染、更新、渲染、卸载等一系列过程,这个过程就是Vue的生命周期,Vue中提供的钩子函数有beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed,父子组件嵌套时,父组件和子组件各拥有各自独立的钩子函数。
WindRunnerMax
2020/09/22
7950
Vue如何实现当前组件重新加载
在最近开发一些功能需求的时候,会遇到重新加载当前组件的情况。当父组件发生了数据变化需要,重置按钮,只刷新当前加载的子组件等情况。
测试加
2022/12/05
12.2K0
Vue如何实现当前组件重新加载
Vue生命周期
Vue实例需要经过创建、初始化数据、编译模板、挂载DOM、渲染、更新、渲染、卸载等一系列过程,这个过程就是Vue的生命周期,在Vue的整个生命周期中提供很多钩子函数在生命周期的不同时刻调用,Vue中提供的钩子函数有beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。
WindRunnerMax
2020/08/27
5270
掌握Vue生命周期,让你的前端开发效率翻倍!
一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成。
JavaEdge
2023/07/09
1910
掌握Vue生命周期,让你的前端开发效率翻倍!
Vue 组件的通信
组件通信 父->子(在子组件中使用父组件数据) props : 不可修改 单向数据传递 子->父(在父组件中使用子组件数据) 自定义事件! 兄弟组件 组件让我们提高了代码的复用性,接下来考虑如何在不同的组件中进行传值 比如: 父组件有items数组 在子组件中使用父组件中的items数组去渲染列表 父子组件通信 目的: 要在子组件中使用父组件中data中的属性值 关键点:通过Props给子组件传值 步骤: 在子组件中通过props声明自定义属性title 注册局部组件 使用子组件
RiemannHypothesis
2022/11/05
3660
Vue 组件的通信
Vue【你知道吗?】
beforeDestroy钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。 destroyed钩子函数在Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
IT茂茂
2020/04/30
5.3K0
Vue【你知道吗?】
Vue父子组件生命周期执行顺序及钩子函数的个人理解(转载)
先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做生命周期钩子的函数(回调函数),这给了用户在不同阶段添加自己代码的机会。
李维亮
2021/07/08
1.2K0
Vue子组件向父组件传值
Vue.js 是一款流行的 JavaScript 前端框架,它提供了一套完整的工具和 API,使得开发者可以更加高效地构建交互式的 Web 应用程序。其中,组件化是 Vue.js 的一个核心概念,通过组件化可以将一个复杂的应用程序拆分成多个独立的部分,每个部分都有自己的状态和行为,从而方便开发和维护。
Yeats_Liao
2023/12/15
2381
前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)
一、Vue的实例 1.1、创建一个 Vue 的实例 每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模型,Vue 的设计无疑受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的简称) 这个变量名表示 Vue 实例。 1、vue.js就是一个构造器,通过构造器Vue来实例化一个对象;例如:var vm = new Vue({}); 2、实例化Vue时,需要传入一个参数(选项对象);
张果
2018/03/30
2.2K0
前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)
vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础
MVX模式简介: MVX框架模式:MVC+MVP+MVVM MVC: Model模型+View视图+Controller控制器
达达前端
2019/12/13
4.1K0
vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础
一文读懂Vue3组件由浅入深
每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。
QGS
2024/01/18
3410
Vue.js 父组件向子组件传值和子组件向父组件传值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134784.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/18
5.5K0
Vue.js 父组件向子组件传值和子组件向父组件传值
Vue中组件间通信的方式
这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父子组件的通信,所谓单向数据流,就是数据只能通过props由父组件流向子组件,而子组件并不能通过修改props传过来的数据修改父组件的相应状态,所有的prop都使得其父子prop之间形成了一个单向下行绑定,父级prop的更新会向下流动到子组件中,但是反过来则不行,这样会防止从子组件意外改变父级组件的状态,导致难以理解数据的流向而提高了项目维护难度。实际上如果传入一个基本数据类型给子组件,在子组件中修改这个值的话Vue中会出现警告,如果对于子组件传入一个引用类型的对象的话,在子组件中修改是不会出现任何提示的,这两种情况都属于改变了父子组件的单向数据流,是不符合可维护的设计方式的。 正因为这个特性,而我们会有需要更改父组件值的需求,就有了对应的emit,当我们在组件上定义了自定义事件,事件就可以由vm.emit触发,回调函数会接收所有传入事件触发函数的额外参数,
WindRunnerMax
2021/02/02
3K0
Vue生命周期(11个钩子函数)「建议收藏」
component : 内置组件,根据is属性来显示对应的组件;is属性的属性值保持和组件名字一致;然后可以显示对应的组件
全栈程序员站长
2022/07/22
5.7K1
Vue生命周期(11个钩子函数)「建议收藏」
【初级】个人分享Vue前端开发教程笔记
每天学习编程,让你离梦想更新一步,感谢不负每一份热爱编程的程序员,不论知识点多么奇葩,和我一起,让那一颗四处流荡的心定下来,一直走下去,加油,2021加油!
达达前端
2021/02/04
4.9K0
相关推荐
Vue自定义组件-事件使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验