Vue--姓名案例--插值表达式|方法|计算属性

简介: Vue--姓名案例--插值表达式|方法|计算属性

1. 插值表达式实现

需要对显示的全名进行处理时,插值表达式中虽然可以写 js 表达式,但是任意过长,造成代码不易阅读

【官网截图】

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>姓名案例</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{firstName}}-{{lastName}}
  </div>
  <script>
    const vm = new Vue( {
      el: '#app',
      data: {
        firstName: '张',
        lastName: '三'
      }
    } )
  </script>
</body>
</html>

2. 使用方法实现

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>姓名案例</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{getFullName()}}
  </div>
  <script>
    const vm = new Vue( {
      el: '#app',
      data: {
        firstName: '张',
        lastName: '三'
      },
      methods: {
        getFullName() {
          return this.firstName+"-"+this.lastName
        }
      }
    } )
  </script>
</body>
</html>

在插值表达式中调用方法,需要写圆括号,否则输出的为函数

<div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{getFullName}}
  </div>

函数每用一次都会调用一次,数据每次发生一次改变,函数也会重新调用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>姓名案例</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{getFullName()}}
    全名:{{getFullName()}}
    全名:{{getFullName()}}
    全名:{{getFullName()}}
    全名:{{getFullName()}}
  </div>
  <script>
    const vm = new Vue( {
      el: '#app',
      data: {
        firstName: '张',
        lastName: '三'
      },
      methods: {
        getFullName() {
          console.log("getFullName方法被调用")
          return this.firstName+"-"+this.lastName
        }
      }
    } )
  </script>
</body>
</html>

3. 计算属性实现

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>姓名案例</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{fullName}}
  </div>
  <script>
    const vm = new Vue( {
      el: '#app',
      data: {
        firstName: '张',
        lastName: '三'
      },
      computed: {
        fullName: {
          // 读取值
          get() {
            return this.firstName+"-"+this.lastName
          },
          // 修改
          set( val ) {
          }
        }
      }
    } )
  </script>
</body>
</html>

计算属性会进行缓存,数据没有更改不会调用计算属性中的get方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>姓名案例</title>
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    姓:<input type="text" v-model="firstName">
    <br><br>
    名:<input type="text" v-model="lastName">
    <br><br>
    全名:{{fullName}}
    全名:{{fullName}}
    全名:{{fullName}}
    全名:{{fullName}}
    全名:{{fullName}}
  </div>
  <script>
    const vm = new Vue( {
      el: '#app',
      data: {
        firstName: '张',
        lastName: '三'
      },
      computed: {
        fullName: {
          // 读取值
          get() {
            console.log("调用了fullName的get")
            return this.firstName+"-"+this.lastName
          },
          // 修改
          set( val ) {
          }
        }
      }
    } )
  </script>
</body>
</html>

3.1 计算属性简写

计算属性只获取值,不进行值的修改

computed: {
        fullName:function() {
            console.log("调用了fullName的get")
            return this.firstName+"-"+this.lastName
        }
      }
computed: {
        fullName() {
            console.log("调用了fullName的get")
            return this.firstName+"-"+this.lastName
        }
      }

相关文章
|
24天前
|
缓存 JavaScript
vue计算属性是什么 怎么选择?
vue计算属性是什么 怎么选择?
|
13天前
|
缓存 监控 JavaScript
Vue.js中的计算属性 computed 与监听属性 watch深入探索
Vue.js中的计算属性 computed 与监听属性 watch深入探索
33 0
|
25天前
|
缓存 JavaScript
什么是vue的计算属性?为什么使用?怎么使用?举例说明
什么是vue的计算属性?为什么使用?怎么使用?举例说明
|
26天前
|
缓存 JavaScript 开发者
什么是vue的计算属性
什么是vue的计算属性
12 0
|
3天前
|
JavaScript 前端开发
Vue,如何引入样式文件
Vue,如何引入样式文件
|
3天前
|
JavaScript
|
1天前
|
JavaScript 开发工具 git
大事件项目40---Vue代码里如何引入相对路径图片
大事件项目40---Vue代码里如何引入相对路径图片
|
2天前
|
JavaScript
vue滚动到页面底部时加载
vue滚动到页面底部时加载
5 1
|
3天前
|
JavaScript 前端开发 API
|
3天前
|
JavaScript 前端开发 网络架构
Vue如何实现页面跳转路由,实现单页面跳转
Vue如何实现页面跳转路由,实现单页面跳转