Vue ref,reactive 响应式引用

// ref , reactive 响应式引用
// 原理,通过proxy 对数据进行封装,当数据变化时,触发模版等内容的更新
// ref 处理基础类型的数据
// reactive 处理非基础类型数据 如:数组,对象等

javascript 复制代码
<script>
// ref , reactive 响应式引用
// 原理,通过proxy 对数据进行封装,当数据变化时,触发模版等内容的更新
// ref 处理基础类型的数据
// reactive 处理非基础类型数据 如:数组,对象等

方法一:简单使用 ref,监听属性变化

方法二:简单使用 reactive 监听对象变化

// setup 
    // 创建 vue实例
   const app = Vue.createApp({
    
     // ref 时,使用name如: {{name}}
    // reactive 时,使用name如: {{nameObj.name}}
    template:  `
    <div >
        {{nameObj.name}}
    </div>
   `,

        // created 实例被完全初始化之前
        // 可以直接使用
        setup(props, context) {
            // 不能在里面用 this关键词
            // 不能调用外部函数
            // 方法一: 使用 ref
            /*
            const {ref} = Vue;
            // proxy, 'dell' 变成 proxy({value: 'lee'})这样的一个响应式引用
                let name = ref('dell');
                setTimeout(() => {
                    name.value = 'lee'
                }, 2000)
                return {
                    name
                }
                */
            // 方法二:  使用 reactive
            // proxy, {name: 'dell'} 变成 proxy({name: 'lee'})这样的一个响应式引用
            const {reactive} = Vue;
            const nameObj = reactive({name: 'dell'});
            setTimeout(() => {
                    nameObj.name = 'lee'
                }, 2000)
                return {
                    nameObj
                }
        }

    });

    const vm = app.mount('#root');
    
</script>

如果想

javascript 复制代码
<script>
// ref , reactive 响应式引用
// 原理,通过proxy 对数据进行封装,当数据变化时,触发模版等内容的更新
// ref 处理基础类型的数据
// reactive 处理非基础类型数据 如:数组,对象等

// setup 
    // 创建 vue实例
   const app = Vue.createApp({
    // ref 时,使用name如: {{name}}
    // reactive 时,使用name如: {{nameObj.name}}
    template:  `
    <div >
        {{nameObj.name}}
    </div>
   `,

   // created 实例被完全初始化之前
   // 可以直接使用
        setup(props, context) {
            // 不能在里面用 this关键词
            // 不能调用外部函数
            // 方法一:
            /*
            const {ref} = Vue;
            // proxy, 'dell' 变成 proxy({value: 'lee'})这样的一个响应式引用
                let name = ref('dell');
                setTimeout(() => {
                    name.value = 'lee'
                }, 2000)
                return {
                    name
                }
                */
            // 方法二:
            // proxy, {name: 'dell'} 变成 proxy({name: 'lee'})这样的一个响应式引用
            //    const {reactive} = Vue;
            //    const nameObj = reactive({name: 'dell'});
            //    setTimeout(() => {
            //         nameObj.name = 'lee'
            //     }, 2000)
            //     return {
            //         nameObj
            //     }

            // 方法三:
            // proxy, {name: 'dell'} 变成 proxy({name: 'lee'})这样的一个响应式引用
            // 对响应式 只读属性
            //    const {reactive, readonly} = Vue;
            //    const nameObj = reactive({name: 'dell'});
            //    // 只读属性
            //    const copyNameObj = readonly(nameObj);
            //    setTimeout(() => {
            //         nameObj.name = 'lee'
            //         copyNameObj.name = 'lei'
            //     }, 2000)
            //     return {
            //         nameObj,
            //         copyNameObj
            //     }

                // 方法四:
                // 注意 toRefs
                const {reactive, readonly, toRefs} = Vue;
            const nameObj = reactive({name: 'dell', age: 28});
            

            // toRefs proxy({name:'dell', age: 28}), { name: proxy({value: 'dell'}) , age: proxy({value: 28})}
            setTimeout(() => {
                    nameObj.name = 'lee'
                }, 2000)
                return {
                    nameObj,
                }
        }
    });

    const vm = app.mount('#root');
    
</script>
相关推荐
Y38153266234 分钟前
SERP API 请求体 Gzip 压缩优化实战:大数据量降带宽 80%
开发语言·前端·php
踩着两条虫2 小时前
VTJ.PRO AI Agent 技术白皮书
前端·vue.js·低代码
子兮曰2 小时前
解剖 Claude Code:从入口架构逆向工程看 AI 编程工具的信任边界设计
前端·后端·claude
先吃饱再说2 小时前
层层传递太“痛”了:useContext 给 React 组件装了个“无线遥控器”
前端·react.js·前端框架
颜进强2 小时前
前端看后端 15:什么是 DNS?
前端·后端·ai编程
文艺理科生2 小时前
LangChain.js-v1-记忆管理最佳实践
前端·javascript·后端
子兮曰2 小时前
Elysia vs Hono 完整性能对比:Bun 专属优化还是跨平台通用,2026 实测数据给出的答案
前端·后端·typescript
To_OC2 小时前
从一个颜色选择器说起:我终于整明白了 React+TS 里的 model 与 api 分层
前端·react.js·typescript
赵大仁2 小时前
浏览器端 RAG:Transformers.js + WebGPU 本地检索入门
前端·ai·react·webgpu·rag
zyplayer-doc2 小时前
同一份制度别复制到多个知识库:用zyplayer-doc引用文档解决重复维护
javascript·人工智能·智能手机·开源·ocr