首页 > 其他分享 >Vue响应式

Vue响应式

时间:2023-10-11 18:59:40浏览次数:34  
标签:Vue App setup value 响应 let click

目录

Vue中的响应式对象

Vue3允许在setup()中定义组件需要的数据和方法, 通过return在模板中可以直接使用

  1. reactive方法

    <body>
        <div id = "Application">
        </div>
        <script>
            const App = Vue.createApp({
                setup() {
                    let myData = Vue.reactive({
                        value: 0
                    })
                    function click() {
                        myData.value += 1
                        console.log(myData.value)
                    }
                    return {
                        myData,
                        click
                    }
                },
    
                template: `
                    <h1>测试数据: {{myData.value}}</h1>
                    <button @click = "click">单击</button>
                `
            })
            App.mount("#Application")
        </script>
    </body>
    
    // 使用这个方法对自定义的JavaScript对象进行包装, 为其添加响应性
    

独立的响应式值

  1. Vue提供的ref方法来定义响应式独立值, ref方法会帮我们完成对象的包装
<body>
    <div id = "Application">
    </div>
    <script>
        const App = Vue.createApp({
            setup() {
                let myObject = Vue.ref(0)
                function click() {
                    myObject.value += 1
                    console.log(myObject.value)
                }
                return {
                    myObject,
                    click
                }
            },

            template: `
                <h1>测试数据: {{myObject}}</h1>
                <button @click = "click">单击</button>
            `
        })
        App.mount("#Application")
    </script>
</body>

// 在模板中使用setup中返回的使用ref定义的数据时, 数据对象会自动展开, 直接使用即可
  1. toRefs方法对响应式对象进行解构赋值
<body>
    <div id = "Application">
    </div>
    <script>
        const App = Vue.createApp({
            setup() {
                let myObject = Vue.reactive({
                    value: 0
                })
                let { value } = Vue.toRefs(myObject)
                
                // Vue会自动将解构的数据转换成ref对象变量, 在setup方法内部使用时, 要使用其内部包装的value属性
                function click() {
                    value.value += 1
                    console.log(value.value)
                }
                return {
                    value,
                    click
                }
            },

            template: `
                <h1>测试数据: {{value}}</h1>
                <button @click = "click">单击</button>
            `
        })
        App.mount("#Application")
    </script>
</body>

计算变量

使用Vue提供的computed方法来创建计算变量

<body>
    <div id = "Application">
    </div>
    <script>
        const App = Vue.createApp({
            setup() {
            	let a = Vue.ref(1);
            	let b = Vue.ref(2);
            	
            	let sum = Vue.computed(() => {
                    return a.value + b.value
                });
                
                function click() {
                    a.value += 1
                    b.value += 2
                }
                
                return {
                    sum,
                    click
                }
            },

            template: `
                <h1>测试数据: {{sum}}</h1>
                <button @click = "click">单击</button>
            `
        })
        App.mount("#Application")
    </script>
    
    // 计算变量也支持被赋值
    /**
    	let sum = Vue.computed({
    		set(value) {
    			a.value = 0
    			b.value = 0
    		}
    		get() {
    			return a.value + b.value
    		}
    	})
    */
</body>
监听响应式变量

Vue提供的watchEffect方法和watch方法, 无需手动指定要监听的变量

Vue.watch(param, func)
Vue.watchEffect(param, func)

setup方法

setup方法会在组件创建前执行, 即对应组件的生命周期方法beforeCreate调用之前执行

组合式API的核心方法, 代码层面上将分离的相关逻辑点进行聚合

接受两个参数props 和 context

方法中可定义声明周期行为

标签:Vue,App,setup,value,响应,let,click
From: https://www.cnblogs.com/rimliuhan/p/17757914.html

相关文章

  • vue框架,input相同标签如何定位-label定位
    一、问题提出:后台前端框架改版,之前是angularjs,现在用vue,导致input标签定位失败,只能定位到第一个input标签,查看后台源代码发现这两个标签是一模一样,如下图:二、问题思考过程1.为什么以前的版本可以定位成功,而现在的就定位不了啦查阅之前版本的这部分定位代码,发现原来的框架是......
  • Vue自定义指令实现复制功能
    importVuefrom'vue'importstorefrom'../store'functioncopyMethod(value){lettext=''switch(typeofvalue){case'number':text=value.toString()breakcase'object':text=JSON......
  • Vue 路由——重定向
    问题描述:网页打开,url默认是/路径,未匹配到组件时,会出现空白解决:重定向→匹配path后,强制跳转path路径 语法:{path:匹配路径, redirect:重定向到的路径}constrouter=newVueRouter({ routes:[  {path: '/', redirect:'/find'}, ......
  • 问题记录贴:vue-i18n在弹出框中$t()报错:TypeError: Cannot read property '_t' of unde
    网上有用的解决方法:vue国际化在弹出框中$t()报错:TypeError:Cannotreadproperty'_t'ofundefined大佬给出的解决方法:弹窗是一个新的Vue对象,只需要单独给弹窗重新绑定i18n即可。代码://dialog/main.jsimportcustomDialogfrom'./dialog.vue'importi18nfrom'@/i18n'......
  • Vue 生命周期
    Vue生命周期Vue生命周期指的是Vue实例从创建到销毁整个过程Vue生命周期函数Vue生命周期函数(或生命周期回调函数、生命周期钩子)指的是在Vue生命周期的特定关键时间点被Vue自动调用的一些特殊函数注意事项生命周期函数的名字不可更改,但函数的具体内容是程序员根据需......
  • vue3+vite import 引入ThreeBSP库 报错
    我在网上查了一下先用npm下载了三方包npmithree-js-csg再使用constThreeBSP=require('three-js-csg')(THREE)的方法引入出现了这个报错查了是因为require是webpack里的vite不支持所以找不到然后我就尝试使用import的方法引入importThreeBSPfrom'three-js......
  • 竟然可以在一个项目中混用 Vue 和 React?
    React和Vue是前端开发中的两大热门框架,各自都有着强大的功能和丰富的生态系统。然而,你有没有想过,在一个项目中同时使用React和Vue?是的,你没有听错,可以在同一个项目中混用这两个框架!本文就来分享3个用于混合使用React和Vue的工具!#VeauryVeaury是一个基于React和Vue3的工具......
  • vite.config.js base 与 vue-router base
    vite.config.jsbase决定了打包后,资源引用的前缀base:'/hlw/'linkref='/hlw/assets'打包后的dist要放到/hlw路径下base的值与process.env.BASE_URL、import.meta.env.BASE_URL一致vuerouter的base决定了,多页面的访问路径当vite.config.js与router中的base......
  • vue项目个人配置
    src/assets/base.css:root{--html-bg-color:#ffffff;}html.dark{--html-bg-color:#242424;}src/assets/reset.css/***EricMeyer'sResetCSSv2.0(http://meyerweb.com/eric/tools/css/reset/)*http://cssreset.com*/html,body,div,span,......
  • 将Vue3项目部署到Github Pages
    1.创建vue3项目$npminitvue@latest初始化工程,并验证。2.创建github仓库3.连接vue项目到github仓库打开vue项目根目录,初始化本地git仓库$gitinit$gitadd.$gitcommit-m"init"连接vue项目到第二步创建的github仓库$gitremoteaddoriginhttps://gith......