• Vue3.0 —— setup、ref、reactive和 computed的简介及使用


    一. setup

    特性:

            1、setup函数是处于 生命周期函数 beforeCreate 和 Created 两个钩子函数之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的

      2、setup函数是 Composition API(组合API)的入口

      3、在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用

    使用:

            1.setup可以作为函数使用: 

    1. <script>
    2. import {ref} from "vue"
    3. export default {
    4. data() {
    5. return {
    6. }
    7. },
    8. setup() {
    9. let msg = ref("hello")
    10. function change() {
    11. msg.value = "修改之后的值"
    12. }
    13. return {msg,change}
    14. }
    15. }
    16. script>

    setup作为函数使用时需要注意:

                1.这个函数内部的变量/函数是局部的
                2.这个函数的返回值 可以被当前组件的任意地方使用
                3.这个函数内部不要使用this来操作组件数据
                4.setup返回的对象中的数据和data中的数据同名了 setup优先级更高
                5.setup在组件加载期间 只会运行一次

    2.setup也可以作为标签的属性,即;这样写就不用写return来返回,模块中也能使用标签内的数据。

    二、ref

            ref的作用:定义一个响应式的数据

            语法:let xxx = ref("value")

            注意:1.在js中操作数据时要使用.value,即xxx.value

                       2.模板中读取数据不需要.value,可以直接使用

                       3.接收的数据类型可以是基本数据类型也可以是引用数据类型

    1. <script>
    2. import {ref} from "vue"
    3. export default {
    4. data() {
    5. return {
    6. }
    7. },
    8. setup() {
    9. let msg = ref("hello")
    10. function change() {
    11. msg.value = "修改之后的值"
    12. }
    13. return {msg,change}
    14. }
    15. }
    16. script>

    三、reactive

            作用:定义一个对象类型的响应式数据(基本数据类型别用它,用ref函数),主要用于嵌套层级比较复杂的数据

            语法:let代理一个对象 = reactive(被代理的对象) 接收一个对象(或数组),返回一个代理器对象(proxy对象),即 let xxx = reactive(value)

            注意:在js中操作数据时不需要使用.value,可以直接使用变量

    1. <template>
    2. <div>
    3. <p>{{arr2[1].like[0]}}p>
    4. <button @click="change6">change6button>
    5. div>
    6. template>

    四、computed计算属性

            vue3.0中的computed计算属性与vue2中的用法一致。

    1. <template>
    2. <div>
    3. <div class="box">
    4. <p>{{msg}}p>
    5. <div v-for="(el,index) in arr" :key="index">
    6. <div>{{el.title}} --- {{el.price}}元 ---
    7. <button @click="subtract(index)">-button>
    8. {{el.count}}
    9. <button @click="add(index)">+button>
    10. div>
    11. div>
    12. <button>{{total}}元button>
    13. <button @click="change">修改button>
    14. div>
    15. div>
    16. template>
    17. <style scoped>
    18. .box {
    19. width: 300px;
    20. height: 300px;
    21. background-color: gray;
    22. }
    23. style>

  • 相关阅读:
    吴恩达《机器学习》8-1->8-2:非线性假设、神经元和大脑
    使用jenkins自动打包构建Maven项目
    SpringBoot之缓存篇
    Teams Tab App 分析
    Selenum八种常用定位(案例解析)
    记参加 2022 Google开发者大会
    前端培训丁鹿学堂:node使用http模块进行请求转发
    [暑假]Vue框架里面 一些属性和配置项的作用
    go语言添加代理
    深入剖析:正则表达式的奥秘
  • 原文地址:https://blog.csdn.net/z_2532040197/article/details/126896181