vue基本语法
2021/8/11 6:07:29
本文主要是介绍vue基本语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 插值语法
- 绑定语法
- 计算属性
插值语法
- Mustache(双括号语法)
<div id="app"> <h2>{{message}}</h2> <h2>{{message}},Tolerate!</h2> <h2>{{firstName + lastName}}</h2> <h2>{{firstName + ' ' +lastName}}</h2> <h2>{{firstName}} {{lastName}}</h2> <h2>{{counter * 2}}</h2> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el : "#app", data : { message : "你好", firstName : 'kobe', lastName : 'bryant', counter : 100 } }) </script>
- v-once指令
<div id="app"> <!-- 某些情况下,并不希望数据跟着改变 --> <h2 v-once>{{message}}</h2> </div>
- v-html指令
<div id="app"> <!-- 有时候后台返回的我们url直接是一个带标签的链接等,我们希望直接将其解析成html文本 --> <h2 v-html="url"></h2> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el : "#app", data : { url : '<a href="https://www.baidu.com">百度一下</a>' } }) </script>
- v-cloak
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> [v-cloak] { display: none; } </style> </head> <body> <!-- 延时加载数据的时候会先将{{message}}渲染出来,并不美观,联合style使用v-cloak会不显示 --> <div id="app" v-cloak> {{message}} </div> <script src="../js/vue.js"></script> <script> setTimeout(function (){ const app = new Vue({ el : "#app", data : { message : "你好" } }) }, 1000) </script> </body> </html>
绑定语法
-
v-bind指令:动态绑定属性
-
比如动态绑定a元素的href属性
-
比如动态绑定img元素的src属性
-
动态绑定某些类、样式等
-
缩写::
-
基本使用:
<div id="app"> <img v-bind:src="imgUrl"> <a :href="aHref">百度一下</a> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el : "#app", data : { message : "你好", imgUrl : 'https://cn.vuejs.org/images/logo.svg', aHref : "https://www.baidu.com" } }) </script>
操作对象:
<!-- 使用方法 --> <!-- 和普通类同时存在,并不冲突,都为true会有三个类 --> <h2 class="title" :class="{'active': isActive, 'line': isLine}">HelloWorld</h2> <!-- classes是一个计算属性,可以放在method或者computed中 --> <h2 class="title" :class="classes">HelloWorld</h2>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .active { color: red; } .line { color: blue; } </style> </head> <body> <div id="app"> <h2 :class="{active:isActive, line:isLine}">{{message}}</h2> <button @click="btnClick">按钮</button> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el : "#app", data : { message : "你好", isActive : true, isLine : false }, methods : { btnClick : function () { this.isActive = !this.isActive; this.isLine = !this.isLine } } }) </script> <!-- <div id="app"> <h2 :class="classes()">{{message}}</h2> <button @click="btnClick">按钮</button> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el : "#app", data : { message : "你好", isActive : true, isLine : false }, methods : { btnClick : function () { this.isActive = !this.isActive; this.isLine = !this.isLine }, classes : function () { return {active: this.isActive, line : this.isLine} } } }) </script> --> </body> </html>
- 动态绑定style
<div id="app"> <!--<h2 :class="key(类名 .class): value(boolead值)">{{message}}</h2>--> <!--<h2 :class="key(属性名): value(属性值)">{{message}}</h2>--> <h2 :style="{fontSize: '50px'}">{{message}}</h2> </div>
注:这里的值必须加双引号,才能解析成字符串,包括所有vue的值,都要这样操作,否则会找到data中的变量去
计算属性
-
某些情况下,我们需要对数据进行一些转化后再显示,或者需要将多个数据结合起来显示
- 比如firstName和lastName两个变量,我们需要完整的展示
- 如果多个地方都需要完整的名称,我们需要写多个{{firstName}} {{lastName}}
-
可以将上面代码转换成计算属性:
- 计算属性是写在实例的computed选项中的:
<div id="app"> <h2>{{getFullName()}}</h2> <h2>{{fullName}}</h2> </div> <script src="../js/vue.js"> </script><script> const app = new Vue({ el : "#app", data : { firstName : 'Kobe', lastName : 'Bryant' }, methods : { // 用方法实现 getFullName() { return this.firstName + ' ' + this.lastName } }, computed : { // 计算属性实现 fullName : function () { return this.firstName + ' ' + this.lastName } } }) </script>
注:调用计算属性的时候只计算一次,有缓存,而方法每次都要重新计算
- 计算属性的getter方法和setter方法
<script> computed : { fullName : { // 一般不需要使用set方法,所以只使用简写方式,只读属性 set : function(newValue) { const names = newValue.split(' '); this.firstName = name[0]; this.lastName = name[1]; }, get : function() { return firstName + ' ' + lastName } } } </script>
-
computed和methods的对比
computed相当于给属性创建get方法,只要值没改变,下次调用这个属性的时候就不会执行。
methods每次都执行,是个方法。
这篇关于vue基本语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程