vue基础(3)

本文详细介绍了Vue.js的基础知识,包括插槽的三种类型:普通插槽、具名插槽和动态插槽,以及组件的生命周期各个阶段。在生命周期部分,解释了从beforeCreate到destroyed每个阶段的特点。此外,还讨论了兄弟组件间通信的bus公交事件总线方法。同时,文章涵盖了自定义指令directive的用途,以及全局和局部过滤器filter的使用方法。
摘要由CSDN通过智能技术生成

插槽slot

普通插槽

使用:在子组件中使用 <slot></slot>占位,就可以在组件的标签中输入内容,放到插槽位置显示
<组件名><h1>这里的内容会呈现在插槽中</h1></组件名>

具名插槽

<slot name='aa'></slot> 使用name属性给插槽命名
使用 <template v-slot:aa></template> 标签和v-slot指令来使用

动态插槽

<slot name='aa'></slot> 使用name属性给插槽命名
使用 <template v-slot:[变量]></template> 
v-slot指令的值使用[]包裹起来,就可以解析里面的变量

生命周期

注意:严格区分大小写;
beforeCreate 创建之前 dom还没有获取,没有属性;
created 创建完成 有属性,有el 但是没有挂载;
beforeMount 挂载之前 有dom 没有挂载
mounted 挂载完成 数据加载完成;
beforeUpdate 更新之前;
updated 更新完成
beforeDestroy 销毁之前;
destroyed销毁之后

兄弟之间通信(bus公交事件总线

  • 创建事件总线,就是实例化一个空Vue对象赋值给一个变量
  • 通过这个对象调用.$emit(‘消息名’,‘值’)发布消息
  • 使用.$on(‘消息名’,处理函数) 用来监听
  • .$off(‘消息名’) 销毁)
 // 1.创建事件总线,就是实例化一个空Vue对象赋值给一个变量
	 var bus = new Vue()
        Vue.component('wxauthor',{
            template:`
                <div>
                    <input type='text' ref='neirong'/>
                    <button @click='setwx'>发布</button>
                </div>
            `,
            methods:{
                setwx(){
                    // 2发布 bus.$emit
                    bus.$emit('wxtext',this.$refs.neirong.value)
                }
            }
        })
        Vue.component('wxuser',{
            template:`
                <div>
                    用户接收
                </div>
            `,
            mounted(){
                //生命周期函数,到组件的dom被渲染完成后,自动执行
                
                //3监听
                bus.$on('wxtext',(da)=>{
                    console.log(da)
                })  
            },
 	destroyed(){
	//防止组件创建销毁几次后会重复调用,在这里可以销毁
                bus.$off('wxtext')
            }
        })

        new Vue({
            el:'#box'
        })
        

自定义指令directive

作用:自定义指令,用来操作顶层dom;

Vue.directive('aa',{
            //aa代表自定义的指令名
            <!-- 指令生命周期 -->
            inserted(el){
                //创建阶段
                //插入  当前节点插入父节点中
                <!-- el可以获取到节点在哪使用这个指令就能获取当前元素的节点 -->
el.style.color=b.value
            },
            update(){
 				//当数据发生改变时调用此方法(生命周期方法)
                <!-- 指令-更新生命周期 -->
            }
        })

    用法 <p v-aa:"参数"><p>   v-aa代表自定义的指令名

filter过滤器

全局过滤器

作用:可以在任何地方使用

Vue.filter('ming',function(da){

})

使用: {{属性|过滤器名字}}

局部过滤器

在组件或vue实例里面使用

filters:{
	过滤器名(){
	}
}

定义的是局部过滤器,只能在自己的组件内部使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值