vue中常见的指令

简单介绍一下常见的vue中用到的指令

v-on

指定当前的事件,语法糖为@,如例子所示,指定按钮的事件为addCounter,点击会使变量counter + 1

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- <script src="https://unpkg.com/vue@next"></script> -->
		<script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">		
			{{ counter }}
			<button @click="addCounter">+1</button>
		</div>
		<script>
			const App = {
				data() {
					return {
						counter: 0
					}
				},
				methods: {
					addCounter() {
						this.counter ++;
					}
				}
			};
			Vue.createApp(App).mount('#app');
		</script>
	</body>
</html>

v-html

会将输出的文本解析为html

v-text

会将变量解析为文本

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- <script src="https://unpkg.com/vue@next"></script> -->
		<script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">		
			<p v-text="msg"></p>
			<p v-html="msg"></p>
		</div>
		<script>
			const App = {
				data() {
					return {
						msg: '<b>1</b>'
					}
				}
			};
			Vue.createApp(App).mount('#app');
		</script>
	</body>
</html>

v-if v-show

都可以控制元素的显示,v-show 不管显示不显示,元素都会被加载,使用的css的display属性去控制元素,v-if如果不显示的话,元素会在编译的时候被去除.

<p v-html="msg" v-if="displayFlg">

v-for

用户循环变量的显示,以及列表数据的显示。

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- <script src="https://unpkg.com/vue@next"></script> -->
		<script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">		
			<p v-for="(val,index) in arrayText">{{index}} -- {{val}} </p>
		</div>
		<script>
			const App = {
				data() {
					return {
						arrayText: ['蛮子', '寒冰', '剑圣']
					}
				}
			};
			Vue.createApp(App).mount('#app');
		</script>
	</body>
</html>

v-bind

用于绑定元素的属性,如下图给img标签绑定了src属性

html 复制代码
		<div id="app">		
			<img v-bind:src="imgsrc"/>
		</div>
		<script>
			const App = {
				data() {
					return {
						imgsrc: 'img/1.jpg'
					}
				}
			};
			Vue.createApp(App).mount('#app');
		</script>

v-model

用于绑定表单元素的值,改变表单中的值,也会改变对应的属性值

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- <script src="https://unpkg.com/vue@next"></script> -->
		<script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<input  type="text" v-model="text"/>
			<p>{{text}}</p>
		</div>
		<script>
			const App = {
				data() {
					return {
						text: 'Hi好'
					}
				}
			};
			Vue.createApp(App).mount('#app');
		</script>
	</body>
</html>

v-pre

跳过元素的vue编辑

v-once

只加载一次,后续改变不在渲染

v-cloak

用于元素未完全加载时候,不显示。需要配合css来使用。

v-cloak {

display: none;

}

相关推荐
默_笙5 小时前
🚓 分诊台与拆题术:让 RAG 学会判断和规划
前端·javascript
呃呃呃呃ex5 小时前
10. 现代前端工程化:ES6 React 项目实战与原理解析
前端·javascript
浪遏5 小时前
D2C 系统架构复盘:从设计稿到代码,我们踩过的坑和最终方案
前端·javascript·后端
farerboy5 小时前
WEB 项目如何禁用 F12 等功能
前端·vue.js·架构
Blanche15005 小时前
Webpack 构建流程解析
javascript·面试
parade岁月5 小时前
vtable-guild 被收录进 vuejs/awesome-vue 了 🎉
前端·vue.js
Flynt5 小时前
官方说一个破折号拖慢整段高亮,我在 Node 里验证了一遍:机制是真的,2.8 倍没跑出来
javascript·性能优化·v8
默_笙5 小时前
🚗 把小说装进数据库了:我的第一个 RAG,和它的五个硬伤
前端·javascript
像我这样帅的人丶你还5 小时前
📱iPhone Duo 开屏动画咋实现的?
javascript·webgl·three.js
Leslie1655 小时前
把 SQL 性能诊断接入模型 API:从谓词分析到可验证优化
javascript