How to use dynamic parameters and calculated properties in Vue

How to use dynamic parameters and calculated properties in Vue

1. Dynamic parameters

Starting from 2.6.0, you can use a JavaScript expression enclosed in square brackets as a directive argument:

<a v-bind:[attributeName]="url"> …

Here, attributeName will be dynamically evaluated as a JavaScript expression, and the resulting value will be used as the final parameter. For example, if your Vue instance has a data property attributeName with a value of "href", then this binding will be equivalent to v-bind:href.

Likewise, you can use dynamic parameters to bind a handler function to a dynamic event name:

<a v-on:[eventName]="doSomething"> …

In this example, when the value of eventName is "focus", v-on:[eventName] will be equivalent to v-on:focus.

Example:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Dynamic Parameters</title>
		<script src="vue.js"></script>
	</head>
	<body>
		<div id='app7'>
			<span v-on:[event_name]='dosomething'>{{msg}}</span>
		</div>
	</body>
	<script>
		var vm = new Vue({
			el:"#app7",
			data:{
				msg:100,
				event_name:'click'
			 },
			methods:{
				dosomething:function(){
					this.msg = this.msg + 1
				}
			}
		})
	</script>
</html>

2. Calculated properties

Expressions in templates are very convenient, but they are designed primarily for simple calculations. Putting too much logic in a template can make it cumbersome and difficult to maintain. For example:

{{ message.split('').reverse().join('') }}

At this point, the template is no longer just a simple declarative logic. You have to look at it for a while before you realize that what we want here is to display the reverse string of the variable message. It becomes even more difficult to handle when you want to include this flipped string in multiple places in your template.

So, for any complex logic, you should use computed properties.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Computed Properties</title>
		<script src="vue.js"></script>
	</head>
	<body>
		<div id = 'app'>{{value_add}}</div>
	</body>
	<script>
		var vm = new Vue({
			el:"#app",
			data:{
				value:100
			},
			
			computed:{ //Similar to methods value_add:function(){
					return this.value + 100
				}
			}
		})
	</script>
</html>

Summarize

This is the end of this article about the use of dynamic parameters and calculated properties in Vue. For more relevant Vue dynamic parameters and calculated properties content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed explanation of calculated properties, monitoring properties and life cycle in Vue.js
  • Introduction to Computed Properties in Vue
  • Computed properties and data acquisition methods in Vue
  • Computed properties and monitoring properties in Vue
  • Vue calculation properties and function selection

<<:  Summary of common Linux distribution mirror source configuration

>>:  MySQL 5.7.25 installation and configuration method graphic tutorial

Recommend

How to count down the date using bash

Need to know how many days there are before an im...

A brief analysis of the responsiveness principle and differences of Vue2.0/3.0

Preface Since vue3.0 was officially launched, man...

Detailed explanation of Docker Swarm concepts and usage

Docker Swarm is a container cluster management se...

js to write the carousel effect

This article shares the specific code of js to ac...

The process of building and configuring the Git environment in Docker

Configure Git environment in Docker At work, I en...

How to implement scheduled automatic backup of MySQL under CentOS7

The happiest thing that happens in a production e...

JavaScript to implement the aircraft war game

This article shares with you how to use canvas an...

MySql Group By implements grouping of multiple fields

In daily development tasks, we often use MYSQL...

Disable IE Image Toolbar

I just tried it on IE6, and it does show the toolb...

Markup language - CSS layout

Click here to return to the 123WORDPRESS.COM HTML ...

Linux CentOS6.5 yum install mysql5.6

This article shares the simple process of install...

How to change MySQL character set utf8 to utf8mb4

For MySQL 5.5, if the character set is not set, t...

Introduction to the three essential logs for MySQL database interviews

Table of contents 1. redo log (transaction log of...

Nginx location matching rule example

1. Grammar location [=|~|~*|^~|@] /uri/ { ... } 2...