外部引入
<link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet"> <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <script type="text/javascript" src="/UploadFiles/2021-04-02/vue-2.5.16.js">HTML部分
<div class="container"> <!--动态数据绑定--> <my-info v-bind:data='msg' v-on:close='closeHandler'></my-info> <!--静态数据绑定--> <my-info data="操作有误"></my-info> </div>script部分
<script type="text/javascript"> Vue.component('my-info',{ template:` <transition leave-active-class="animated fadeOutUpBig"> <div v-show='isShow' style="background:orange; color:#fff; padding:.5em 1em; border-radius:5px; margin:.5em 0; position:relative"> <i class="fa fa-info-circle"></i> <span>{{data}}</span> <i @click='close' class="fa fa-close" style="position:absolute; right: 1em; cursor:pointer"></i> </div> </transition> `, //注意:data必须是一个函数 data(){ return { isShow:true } }, props:['data'], methods:{ close(){ //子组件向父组件发射事件 this.$emit('close'); //关闭消息框 this.isShow = false; } }, }); new Vue({ el:'.container', data:{ msg:'添加失败!' }, methods:{ closeHandler(){ console.log('关闭了'); } } }); </script>效果
全局组件
组件的创建和注册分成3步:创建组件构造器,注册组件,挂载作用域内实例化
例如:
<div id="app"> <!-- 3. #app是Vue实例挂载的元素,应该在挂载元素范围内使用组件--> <my-component></my-component> </div> <script> // 1.创建一个组件构造器 var myComponent = Vue.extend({ template: '<div>这是我的全局组件</div>' }) // 2.注册组件,并指定组件的标签,组件的HTML标签为<my-component> Vue.component('my-component', myComponent) new Vue({ el: '#app' }); </script>我们来理解组件的创建和注册:
- Vue.extend()是Vue构造器的扩展,调用Vue.extend()创建的是一个组件构造器,而不是一个具体的组件实例。
- Vue.extend()构造器有一个选项对象,选项对象的template属性用于定义组件要渲染的HTML。
- 使用Vue.component()注册组件时,需要提供2个参数,第1个参数时组件的标签,第2个参数是组件构造器,也就是说
- Vue.component('标签名',Vue.extend())=>
- Vue.component('标签名', {template:' '})
- Vue.component()方法内部会调用组件构造器,创建一个组件实例。
全局组件必须写在Vue实例创建之前,才在该根元素下面生效
例如:
<div id="app"> <!--该组件不会被渲染,并且报错--> <my-component></my-component> </div> <div id="app1"> <my-component></my-component> </div> <script> new Vue({ el: "#app" }); Vue.component("my-component", { template: "<h1>这是我的全局组件</h1>" }); new Vue({ el: "#app1" }) </script>Prop传值
组件实例的作用域是孤立的,父组件可以通过props向下传递数据给子组件。
Prop静态传递数据
<div class="father"> <child msg="hello!" data="yes!"></child> </div> Vue.component('child',{ props:['msg',"data"], template:`<p>{{msg}}</p> <p>{{data}}</p> ` })Prop动态传递数据
<div class="father"> <child v-bind:msg="val"></child> </div> Vue.component('child',{ props:["msg"], template:` <p>{{msg}}</p>` }) new Vue({ el:'.father, data:{ val:'添加失败!' } })总结
以上所述是小编给大家介绍的Vue组件全局注册实现警告框的实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年09月24日
2024年09月24日
- 国风大师纯音系列《古筝仙子 常静演奏 十指弹一》1CD[FLAC][919MB]
- DasKapital-OneMustHaveChaosInsidetoGiveBirthtoaDancingStar(2024)[24-44.1]WAV
- 王菲.1999-《只爱陌生人》日本东芝版[低速原抓WAV+CUE]
- 张小英1987-金奖金曲第一集[新加坡版][WAV+CUE]
- 鹿晗.2015-重启【海蝶】【FLAC分轨】
- 张芸京.2012-小女孩【金牌大风】【WAV+CUE】
- 余天.2002-雄狮魅力金曲2CD(南方金点系列)【南方】【WAV+CUE】
- 银霞.1982-《结·SAYYESMYBOY》台湾复刻版[WAV+CUE]
- 梁汉文1993-火热动感[引进版][WAV+CUE]
- 梁汉文2008-EDMONDHITS48[香港]3CD[WAV+CUE]
- 国风大师纯音系列《童丽-[渭城曲]》1CD[WAV分轨][593.5MB]
- 国风大师纯音系列《许菱子《烧筝2》古筝曲集》1CD[WAV分轨][1.3GB]
- 王子异《1996 Part.2》[320K/MP3][18.29MB]
- 群星.1994-宝丽金最倾情3CD【宝丽金】【WAV+CUE】
- 乐俊亨.2024-同泪【CharioticMusic】【FLAC分轨】