vue3-data-setUp-computed

简介: vue3也是时候梳理了,千里之行始于足下更详细的 vue3简介就不说了 直接上干货

1. 前言


vue3也是时候梳理了,千里之行始于足下

更详细的 vue3简介就不说了 直接上干货


2. 脚手架


vue/cli 4x以上

vue create 项目名

配置 可以选择默认 或者自定义 这里选择自定义配置 Manually select feature

}`@HCD0HV`CUCAXKOPVT53K.png



3.  props 用法


3.1 基本写法


props: {
    msg: String
  },


3.2 模板


<h1> 属性传值: {{ msg }}</h1>
  <input type="text" v-model="msg">
  <hr />


3.3 传值


<HelloWorld   v-if="showView === 1" msg="Welcome to Your Vue3 App"/>


3.4 分析

这块props其实和v2没啥区别


4. data


4.1 数据


data() {
    return {
      name: "data "
    }
  },


4.2 模板


<h1>data: {{name}} </h1>
<input type="text" v-model="name">
<hr />


4.3 分析

v2区别也不大


5. setUp 初识


这个 v3新增的 组合式API 的一个重点,简单来玩下

5.1  主要代码


setup(){
                // return {
                //默认不是响应式数据
                //     msgSet:"这是好消息"
                // }
                const state = reactive({
                    msgSet:"这才是响应式数据"
                })
                //暴露给模板使用 这里不能展开,会破坏内部结构
                return  {state}
            },


5.2 分析

1.这个 setup 可以返回数据

2.这个返回的数据默认不是响应式数据

3.响应式数据需要做单独的处理  reactive


import {reactive,computed} from "vue";

4.返回的数据 必须是原来的结构 ,不能进行...展开,会破坏内部结构,导致不是响应式数据


5.3 使用 数据


<h1>setUp: {{state.msgSet}} </h1>
<input type="text" v-model="state.msgSet">
<hr />


5.4 参数1 props


setup(props) {
            console.log("---------", props)
            // 不是响应式数据了 
            // return{
            //   msgSet:"新的写法"
            // }
            //  ****************** 就是原来的 data
            const state = reactive({
                msgSet: "响应式数据",
                count: 9
            })
            // ****************  计算属性
            const doubleCounter = computed(() => {
                return state.count * 2
                // return  state.msgSet.length
            })
            // 暴露出去 使用
            return {
                state,
                doubleCounter
            }
        },



<HelloWorld   v-if="showView === 1" msg="Welcome to Your Vue3 App"/>

XIZEU]_]9(EL)F~78NT5B`A.png



5.5 参数2


setup(props, { attrs, slots, emit }) {
    ...
  }



6. computed 计算属性


6.1 代码


const state = reactive({
                msgSet: "响应式数据",
                count: 9
            })
            // ****************  计算属性
            const doubleCounter = computed(() => {
                return state.count * 2
                // return  state.msgSet.length
            })
                     // 暴露出去 使用
            return {
                state,
                doubleCounter
            }


6.2 模板使用 数据


<hr />
        <p>{{state.count}}</p>
        <p>{{doubleCounter}}</p>


6.3 分析

1.这里面其实是2个例子

2.1个是 数字 2倍的计算

3.1个是动态计算字符串长度

4.使用的时候注意,计算属性 直接 rerturn就行,不用包裹在state




相关文章
|
7月前
|
设计模式 JavaScript 前端开发
深入理解 Vue3 中的 setup 函数
深入理解 Vue3 中的 setup 函数
|
API
Vue3-setup()函数
Vue3-setup()函数
45 0
|
7月前
|
JavaScript
vue组件中data为什么必须是一个函数
Vue.js 组件的 data 选项必须是一个函数,这是为了确保每个组件实例都有自己的独立数据副本,从而避免数据污染和确保组件的复用性和可预测性
|
JavaScript 前端开发
【Vue3】vue3——setup,ref函数,reactive函数
【Vue3】vue3——setup,ref函数,reactive函数
104 0
|
2月前
|
JavaScript
vue 组件中的 data 为什么是一个函数 ?
【10月更文挑战第8天】 在 Vue 组件中,`data` 被定义为一个函数而非普通对象,以确保每个组件实例拥有独立的数据空间,避免数据混乱。这种方式还支持数据的响应式更新、组件的继承与扩展,并有助于避免潜在问题,提升应用的可靠性和性能。
24 2
|
6月前
|
JavaScript
vue组件中data为什么必须是一个函数?
vue组件中data为什么必须是一个函数?
45 1
|
6月前
|
JavaScript
vue中的data为什么是一个函数
vue中的data为什么是一个函数
|
JavaScript
53Vue - 组件的使用(data 必须是函数)
53Vue - 组件的使用(data 必须是函数)
30 0
|
7月前
|
JavaScript
Vue中data为什么必须是一个函数
Vue中data为什么必须是一个函数
|
7月前
|
缓存 JavaScript 前端开发
vue中data为什么是函数
vue中data为什么是函数
54 0