美文网首页
vue3.0 的基本使用

vue3.0 的基本使用

作者: 嗯o哼 | 来源:发表于2022-06-20 00:10 被阅读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>
    

    相关文章

      网友评论

          本文标题:vue3.0 的基本使用

          本文链接:https://www.haomeiwen.com/subject/onedvrtx.html