vue2的脚手架笔记总结2

        webStorage

                1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样)

                2.浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制(session 和 localStorage的功能一样,但是session会在浏览器关闭时清除数据)

                3.相关API

                         3.1存储           localStorage.setItem("msg","hello")      接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值

                        3.2读取            JSON.parse('字符串')         转化为对象
    localStorage.getItem("msg")         接受一个键名作为参数,返回键名对应的值,读取指定信息,读取不存在的信息是null                 JSON.stringify('对象')  将对象转化为字符串

                        3.3删除                 localStorage.clear()   清空
localStorage.removeItem('msg')     接受一个键名作为参数,并把该键名从存储中删除

         

        组件的自定义事件

                1.一种组件间通信的方式,适用于:子组件 ===> 父组件

                2.使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)。

                3. 绑定自定义事件:

                        3.1第一种方式,在父组件中:

<StudentB @xiao="getStudentB"/>

                       3.2第二种方式,在父组件中:

<StudentB ref="stu"/> 
  mounted() {
    this.$refs.s.on('绑定了ref的组件stu',()=>{})
  },

                        若想让自定义事件只能触发一次,可以使用once修饰符,或$once方法。

                4.触发自定义事件:

this.$emit('事件名',数据)

                5.解绑自定义事件

this.$off('事件名')

                        组件上也可以绑定原生DOM事件,需要使用native修饰符。

          全局事件总线(GlobalEventBus)

                1.一种组件间通信的方式,适用于任意组件间通信。

                2.安装全局事件总线:

                        2.1 创建一个VueComponent的实力作为全局事件总线

const Demo = Vue.extend()
Vue.prototype.x = new Demo()

                        2.2在vue生成前创建

  beforeCreate(){ 
  Vue.prototype.$bus = this  //安装全局事件总线,$bus就是当前应用的vm
  }
 

                3.使用事件总线(谁需要谁创建,停用时销毁),接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身(创建和销毁在一个组件中)。

                        3.1创建

  mounted(){
    this.$bus.$on("xxx",()=>{ })
  }
             3.2使用
methods(){
  this.$bus.$emit('xxx',...params)
}

                        3.3销毁

  beforeDestroy(){
    this.$bus.$off('xxx')
  }

        消息订阅与发布(pubsub)

                1.一种组件间通信的方式,适用于任意组件间通信。

                2.使用步骤

                        2.1安装pubsub

npm i pubsub-js

                        2.2引入

import pubsub from 'pubsub-js'

                        2.3订阅数据,订阅的是用来接收数据的组件,A组件想接收数据,则在A组件中订阅消息,订阅的回调留在A组件自身。

  mounted(){ 
   this.pubId=   pubsub.subscribe("hello",(a,b)=>{console.log('发布消息',a,b)})
  },
  beforeDestroy(){ 
    pubsub.unsubscribe(this.pubId)
  }
            2.4发送数据
   g(){
      pubsub.publish('hello',777)
   }

         nextTick

                1. 语法

this.$nextTick()

                2.作用:在下一次 DOM 更新结束后执行其指定的回调。

                3.什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。

        Vue封装的过度与动画

                1.作用:在插入、更新或移除 DOM元素时,在合适的时候给元素添加样式类名。

                2.写法

                        2.1准备好样式

                        元素进入的样式(v指的是transition的name)

                                v-enter:进入的起点

                                v-enter-active:进入过程中

                                v-enter-to:进入的终点

                        元素离开的样式:

                                v-leave:离开的起点

                                v-leave-active:离开过程中

                                v-leave-to:离开的终点

@keyframes lll {
   from{
      transform: translateX(-100%);
   }
   go{
      transform: translateX(0);
   }
}
.v-enter-active{
   animation: lll 1s linear;
}
.v-leave-active{
   animation: lll 1s linear reverse;
}
如果transition有name需要把v改成name的值

                    3.使用<transition>包裹要过度的元素,并配置name属性:

<transition name="hello">
    <h1 v-show="isShow">你好啊!</h1>
</transition>

                4.若有多个元素需要过度,则需要使用:<transition-group>,且每个元素都要指定key值。

   <transition-group appear name="leq">
    <h1 v-show="ishidden"  key="2"> 123</h1>
      <h1 v-show="!ishidden" key="1" > 123</h1>
   </transition-group>


               5.animate样式库

                        5.1安装样式库
  

  npm install animate.css

                        5.2配置,在官网寻找所需样式

   <transition-group 
   appear
   name="animate__animated animate__bounce" 
   enter-active-class="animate__rubberBand"
   leave-active-class="animate__backOutUp"
   >
    <h1 v-show="ishidden" key="1" > 123</h1>
   <h1 v-show="!ishidden"  key="2"> 123</h1>
   </transition-group>

                        5.3animate动画样式官网

根据引用中的信息,张天禹老师的Vue2笔记主要包括以下内容: 1. 脚手架文件结构: 包括了src文件夹、public文件夹、babel.config.js、package.json等文件,这些文件组成了Vue项目的基本结构。 2. Vue.js与vue.runtime.xxx.js的区别: Vue.js是完整版的Vue,包含了核心功能和模板解析器,而vue.runtime.xxx.js是运行版的Vue,只包含核心功能,没有模板解析器。因此,在使用vue.runtime.xxx.js时,无法直接使用template配置项,需要使用render函数来指定具体内容。 3. vue.config.js配置文件: 使用vue.config.js可以对Vue脚手架进行个性化定制,可以通过该文件来修改默认配置。 4. ref属性: 在Vue中,ref属性用来给元素或子组件注册引用信息(相当于id)。在html标签上使用ref获取的是真实DOM元素,在组件标签上使用ref获取的是组件实例对象。使用方式是通过打标识和this.$refs.xxx来获取。 5. props配置项: 在Vue中,props配置项用来设置父组件向子组件传递数据的属性。子组件可以通过props获取到来自父组件的数据。 以上就是张天禹老师Vue2笔记的一些主要内容。123 #### 引用[.reference_title] - *1* [尚硅谷Vue2-3(张天禹老师) 学习笔记](https://blog.csdn.net/weixin_55092718/article/details/126071878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [尚硅谷 张天禹老师vue2笔记(方便自己查阅)](https://blog.csdn.net/xianyu120/article/details/120850859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [Vue2学习笔记(尚硅谷张天禹老师)day-01](https://blog.csdn.net/qq_53916344/article/details/123890478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值