vue笔记

 安装axios:

npm i axios -S 

 immediate选项:

默认情况下,组件在初次加载完毕之后不会调用watch侦听器,如果想让watch侦听器立即被调用,则需要将immediate设置为true

deep选项:

当watch监听的是一个对象,如果对象中的属性值发生了变化,则无法被监听到。此时需要使用deep选项设置为true

计算属性vs侦听器
        计算属性和侦听器侧重的应用场景不同
        计算属性侧重监听多个值的变化,最终计算并返回一个新值
        侦听器侧重于监听单个数据的变化,最终执行特定的业务处理,不需要有任何返回值  

组件生命周期
        1.当组件在内存中被创建完毕之后,会自动调用created函数
        2.当组件被成功的渲染到页面上之后,会自动调用mounted函数
        3.当组件被销毁完毕之后,会自动调用unmounted函数
        4.当组件被重新渲染完毕之后,会自动调用updated生命周期函数

 兄弟组件之间数据共享
        EventBus,借助第三方的包mitt来创建eventBus对象

     npm install mitt@2.1.0


        bus.on('事件的名称',接受的数据) ,声明自定义事件
        bus.emit('事件名称',要发送的数据),触发自定义事件


    父节点通过provide共享数据
        通过provide()方法,对其子孙组件共享数据
        provide(){return{color:this.color}}
        可以结合computed函数向下共享响应式的数据:
            color:computed(()=>this.color)


    子孙节点通过inject接受数据
        inject:['color']
        共享响应式的数据,则子孙节点必须以.value的形式进行使用
    
    vuex是终极的组件之间的数据共享方案

 $ref操作dom
        this.$refs.myh3.style.color='red
        使用ref引用页面上的组件实例
        组件是异步执行dom更新的
        this.$nextTick(cb)方法
            组件的$nextTick(cb)方法,会把cb回调推迟到下一个DOM更新周期之后执行。
   

component标签动态组件   
        <component :is="comName"></component>

使用keep-alive保存状态
        默认情况下,切换动态组件时无法保存组件的状态,此时可以使用vue内置的<keep-alive>组件保持动态组件的状态,
        <keep-alive><keep-alive>

   

具名插槽
        如果在封装组件时需要预留多个插槽节点,则需要为每个<slot>插槽指定具体的name名称。这种带有具体名称的插槽叫做
        “具名插槽”,
        为具名插槽提供内容:<template v-slot:定义的插槽名称></template>,v-slot可简写为#
        作用域插槽

   

自定义指令
        私有指令:
            directives:{
                focus:{
                    //当被绑定的元素插入到DOM中时,自动触发mounted函数(vue2中是bind)
                    mounted(el){
                        el.focus();
                    },
                    //每次DOM更新时都会触发updated函数(vue2中是update)
                    updated(el){
                        el.focus();
                    }
                }
            }
        全局指令:
            app.directive('focus',{
                mounted(el){el.focus()}
            })

 

  vue-router路由
        安装vue-router :npm install vue-router@next -S
        创建route.js文件,导入{createRouter,createWebHashHistory}
        在main.js中挂载
        使用<router-link>标签声明路由标签,用<router-view>标签来声明路由占位符
        .router-link-active在index.css中重置路由链接激活状态的样式
        子路由:
            children:[
                {path:'',component:Home}
            ]
        动态路由:
            把Hash地址中可变的部分定义为参数项,从而提高路由规则的复用性,用英文的冒号(:)来定义路由的参数项。
            用$route.params.id获取参数值
            props:true,接受路由匹配到的值
        编程式导航API
            this.$router.push('hash地址):跳转到指定Hash地址,从而展示对应的组件
            this.$router.go(数值 n):实现导航历史的前进、后退
        导航守卫
            router.beforeEach((to,from,next)=>{
                console.log("导航守卫");
            })//to:目标路由对象,from:当前导航正要离开的路由对象,next:是一个函数,表示放行。

   

    vue-cli
    element-ui
    拦截器
    跨域代理proxy

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值