首页 > 其他分享 >4.15 vue中watch computed

4.15 vue中watch computed

时间:2023-04-04 11:34:50浏览次数:47  
标签:set 4.15 computed get watch vue 计算 属性

在 Vue.js 中,computed 是一种计算属性,它能够根据依赖的数据动态计算出一个新的值。
computed 属性可以定义为一个函数,该函数返回需要计算的值。
当它所依赖的数据发生变化时,Vue.js 会自动重新计算这个值并将其更新到组件上。

与 computed 对应的还有另外两种常见的属性,分别是 methods 和 watch。
其中,methods 可以定义一些计算逻辑,但它们返回的值不能缓存,每次都会重新计算;
而 watch 则用于监听某个数据的变化并执行一些操作,但它不能返回数据值。

computed 属性还可以通过 get 和 set 方法来实现对计算属性的输入输出控制。
get 方法表示当访问计算属性时要执行的代码,
set 方法则表示当给计算属性赋值时要执行的代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>computed set get</title>
    </head>
    <body>
        <!--View-->
        <div id="box">
          <input v-model="fullInputName" />
          <div>{{fullName}}</div>  
        </div>
    </body>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

    <script>
    //Model
    const user = {
        data(){
          return{
            firstName: "Jack",
            lastName: "Jobs",  //乔布斯
            fullInputName:''
          }
        },
        computed: {
            fullName: {
                get(){
                    console.log('get called...');
                    return this.firstName + " " + this.lastName;
                },
                set(value) {
                    console.log("set called.");
                    var arr = value.split(" ");
                    this.firstName = arr[0];
                    this.lastName = arr[1];
                }
            }
        },
        watch:{
            fullInputName(value){
                console.log('----watch');
                this.fullName = value;
            }
        }
    }

    //ViewModel
    const app = Vue.createApp(user);     
    const rc = app.mount("#box");  
</script>
</html>

标签:set,4.15,computed,get,watch,vue,计算,属性
From: https://www.cnblogs.com/pansidong/p/17285820.html

相关文章

  • vue下拉框联动 数据清空后,赋值无效
     1.问题描述:规格型号与设备类型联动,当选择“规格型号”后,清空“设备类型”选择框内容,选择数据赋值时失效。   2.解决 添加this.$forceUpdate();进行强制渲染,效果实现。 getSecondName(){   this.$forceUpdate();  }, ......
  • vue3+vite 解决本地调用时跨域请求
    1、config配置文件中,axios默认请求地址;改为"/api",否则还是请求环境变量中的地址; 2、vite.config.ts文件中做如下配置:  server:{  open:true,//启动项目自动弹出浏览器  port:8081,//启动端口  cors:true,  proxy:{   "/api":{  ......
  • vue做播放器和进度条
    <template><video-playerclass="video-playervjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"@play="onPlayerPlay($event)"@pause="onP......
  • 【vue】vue3中的动画
    vue版本:vue3不过是控制动画放到了标签内控制在上图中,是绑定到了stylevue中关于动画的封装入场出场动画进入开始状态(时间点).v-enter-from{}动态效果(时间段).v-enter-active{}终止状态(时间点).v-enter-to{}.v-leave-from{}.v-leave-active{}.v-lea......
  • vue脚手架创建与环境安装
    1.安装Node.jsDownload|Node.js   在这里......
  • vue指令之属性指令
    目录属性指令示例属性指令标签上的属性可以绑定变量,变量变化,属性也会变化#什么是属性?比如:href/src/name/value/class/style...语法:v-bind:属性名="变量名"简写:属性名="变量名"示例<body><divid="app"><av-bind:href="url">点我</a>......
  • vue指令系统之文本指令
    目录什么是指令系统文本指令a-text指令a-html指令v-showv-if什么是指令系统指令系统是VUE提供的,语法为v-xx写在标签属性中的,系统都称之为指令文本指令文本指定必须写在标签属性上文本指定的值必须为变量,或者表达式v-xx#必须是一个标签属性<pv-text="a_url"></......
  • VUE插值语法
    目录基本使用基本使用在body中创建一个标签,一般使用div,定义好id后,在script中进行定义,在前台使用{{变量}}的形式进行调用,语法如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="./......
  • 前端Vue项目打包性能优化方案
    一.前言Vue框架通过数据双向绑定和虚拟DOM技术,帮我们处理了前端开发中最脏最累的DOM操作部分,我们不再需要去考虑如何操作DOM以及如何最高效地操作DOM;但Vue项目中仍然存在项目首屏优化、Webpack编译配置优化等问题,所以我们仍然需要去关注Vue项目性能方面的优化,使项......
  • vue3适配移动端的登录实现
    <scriptlang="ts"setup>import{ref}from'vue'constPHONE_NUMBER_REGEX=/^1[0-9]{10}$/constVERIFICATION_CODE_REGEX=/^[0-9]{6}$/constLOGIN_ERROR_MESSAGE='登录失败,请检查网络连接并重试'constGENERATE_CODE_ERROR_MESSAGE......