vue3.0 的基本使用

一、生命周期

// 在beforeCreate执行前执行,组件实例创建前,执行
beforeCreate -> 请使用 setup()
created -> 请使用 setup()
// 挂载DOM前执行
beforeMount -> onBeforeMount
// 挂载DOM后执行
mounted -> onMounted
// 更新组件前执行
beforeUpdate -> onBeforeUpdate
// 更新组件后执行
updated -> onUpdated
// 卸载销毁前 执行
beforeDestroy -> onBeforeUnmount
// 卸载销毁后执行
destroyed -> onUnmounted
errorCaptured -> onErrorCaptured

二、setup

3.0之后的代码基本上都是在setup中完成的,它是一个函数,在组件实例创建前执行,所以,不能使this关键字, 模板中需要的数据、函数在setup中返回

1. 创建基本的数据

<script>
 export default{
    name: 'App',
     setup(){
       // 创建一个普通数据,可以在模板中直接使用
        const msg = 'hi vue3'
      // 创建一个函数,可以在模板中进行调用
        const say  = ()=> {
            console.log('hi vue3')
         }
           return { msg }
      }
}
</script>

2.创建响应式数据,可以使用reactive、ref、toRef、toRefs

<script>
  exprot default{
    name:'App',
    setup(){
      // 1. 创建一个响应式数据,数据改变,页面显示的内容也发生变化
      const obj  = reactive({
        name:'lisi',
        age:18
      })
    // 修改的时候,可以直接修改对象的属性
     const updateName = ()=>{
       obj.name = 'zhangsan'
      }
    // 2. 创建一个响应式数据,可以直接在模板中使用name
    const name = toRef(obj,'name')
     
    // 2.2 多个响应式数据
    const obj2 = toRefs(obj)
     // 3. 创建一个简单的响应式数据
     const count= ref(0)
    // toRef、toRefs,ref会将数据封装成一个对象,值保存在value中,如果需要修改值,可以通过修改value实现
     const updateRef = ()=>{
      name.value = 'wangwu'
      count.value++
      }
    return { // ...0bj2 包含了obj对象的每个数据,可以直接使用
    obj,updateName,name,...obj2,count,updateRef
    }
  }
</script>

3. 计算属性

计算属性是通过一定规则计算出来的,是只读,无法修改的
可以通过computed进行创建

<script>
  export default{
  name:'App',
  setup(){
  const age = ref(18)
  // 1. computed内可以接收一个回调函数,函数内部就是具体的逻辑规则
  const newAge = computed(()=>{
      return age.value + 1
    })
  //2. computed内还可以接受一个对象,变相的实现修改计算属性的目的,可以和v-model进行绑定
  const newAge2 = computed({
    // get函数,获取计算属性的值
    get(){
      return age.value + 1
    },
    // set函数,接受一个参数value,无法直接修改newAge2,但是可以通过修改age变相的修改newAge2的值
    set(value){
      age.value = value -1
    }
  })
  }
}
return {
  age,newAge,newAge2
}
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容