首页 > 其他分享 >vue基础指令

vue基础指令

时间:2024-01-24 21:23:31浏览次数:32  
标签:el vue app 基础 Vue 指令 new data

Vue基础指令

CDN使用VUE

对于制作原型或学习,你可以这样使用最新版本:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏:

<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>

如果你使用原生 ES Modules,这里也有一个兼容 ES Module 的构建文件:

<script type="module">
  import Vue from 'https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.esm.browser.js'
</script>

NPM安装

在用 Vue 构建大型应用时推荐使用 NPM 安装。

# 最新稳定版
npm install vue

创建vue实例

// 初始化vue
new Vue({
    el: "#app",//接受一个dom节点,或者id,应用的根节点将实例挂载到元素上,内部的所有结构都具备是有vueapi的能力
    data: {//提供应用所有的数据
        title: "hello Vue",
        num: 1
    },
    methods: {//应用的方法
        handleClidk() {
            this.num++
        }
    }
})

VUE基础指令及作用(常用)

v-on

绑定事件,使用v-on命令添加一个事件监听器,通过它调用在 Vue 实例中定义的方法:

简写是@v-on:click='方法的名字'简写@click='方法的名字'

<div id="app">
	{{num}}
	<button @click="handleClidk()">增加数字</button>
</div>
new Vue({
	el: "#app",//接受一个dom节点,或者id,应用的根节点将实例挂载到元素上,内部的所有结构都具备是有vueapi的能力
	data: {//提供应用所有的数据
		 title: "hello Vue",
		num: 1
	},
	methods: {//应用的方法
		 handleClidk() {
		this.num++
		 }
	}
})

image-20240123214259531

v-html

v-html 简写`` 绑定data中的值到标签的innerHTML中,下面rawHtml元素则按照HTML语言编写

<div id="app">
	<p v-html="rawHtml"></p>
</div>
<script type="text/javascript">
	var vm = new Vue({
	el :"#app",
	data : {
		msg:"hi vue",
		rawHtml : '<span style="color:red">this is should be red</span>',
		color:'red',
		number: 10,
		ok : false,
		message:"vuesdads"
	}
});
	vm.msg = "hi...."
</script>
//输出 this is should be red(红色字体)
v-text

v-text 基本上跟v-html 一样 ,但是他会把标签字符串原样输出

<body>
    <div id="app">
        <h1>{{tit}}</h1>
        <h2 v-html="tit"></h2>
        <ul v-html="listStr"></ul>
        <ul v-text="listStr"></ul>
    </div>
</body>
<script src="./vue.js"></script>
<script>
    let options = {
        el: "#app",
        data: {
            tit: 'hello world',
            listStr: "<li>list</li>"
        }
    }
    let app = new Vue(options)
</script>

image-20240123220412768

v-if

v-if根据其值(boolean)控制载体的加载与卸载,v-else配合v-if,以及v-else-if 和 javascript 的行为逻辑判断一致。

<div id="app">
	<p v-if="score>=90">优秀</p>
	<p v-else-if="score>=60">及格</p>
	<p v-else-if="score<60">不及格</p>
</div>
<script src="../js/vue.js"></script>
	<script>
		const app = new Vue({
			el: "#app",
			data: {
		      	score: 13,
		     }
		  })
	</script>

上面代码score改变值的画则会影响输出。

v-show

v-show和v-if机制一样,但是v-show是通过style的属性 display:none 的方式来控制元素显示与隐藏。

v-show 隐藏 是display:'none'*
v-if 隐藏是 visibility:hidden;*

区别是

*display:none和visibility:hidden的区别是:*

*1.display:none是彻底消失,不在文档流中占位,浏览器也不会解析该元素;visibility:hidden是视觉上消失了,可以理解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;*

<div id='itany'>
			<p>{{msg}}</p>
			<h1 v-if="!see" >{{msg}}</h1>
			<h1 v-show="!see" v-bind:class="color">{{msg}}</h1>
			
		</div>
		<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
		<script>
			new Vue({
				el: '#itany',
				data: {
					msg: 'hello vue',
					see: true,
					color:'red',
				}
			})
		</script>
		<style>
			.red{
				color: red;
			}
		</style>
v-bind

v-bind 把标签的属性(attribute)跟data中的数据进行绑定,简写 :(英文冒号),例如:

test...,input框 v-bind:value="动态变量" 可以简写 :value="动态变量"。

<div id="app">
	<div v-bind:class="color">test...</div>
</div>
var vm = new Vue({
	el : "#app",
	data : {
		msg : "hi vue",
		rawHtml : '<span style="color:red">this is should be red</span>',
		color:'blue',
		number : 10,
		ok : 1,
		
	}
});
v-for

循环结构,循环的是他的载体以及所有后代,v-for与v-bind:key结合使用

循环数组
<ul id="app">
		<li v-for="(item,i) in userList">索引:{{i}}---ID:{{item.id}}---姓名:{{item.name}}---年龄:{{item.age}}</li>
</ul>
	<script type="text/javascript">
			var vm = new Vue({
				el :"#app",
				data: {
					userList: [
						{id: 1,name: "zs1",age: 21}, 
						{id: 2,name: "zs2",age: 22}, 
						{id: 3,name: "zs3",age: 23}, 
						{id: 4,name: "zs4",age: 24},
						{id: 5,name: "zs5",age: 25}
					]
				}

			})
	</script>

输出:

image-20240123232516185

循环对象
		<div id="app">
			<div v-for="(value,name,index) in object">
				{{index}}.{{name}}. {{value}}
			</div>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: '#app',
				data: {
					object: {
						title: 'How to do lists in Vue',
						author: 'Jane Doe',
						publishedAt: '2016-04-10'
					}
				}
			})
		</script>

输出:

image-20240124150542985

v-model

一般用于input标签 双向绑定。

<div id="app-6">
	<p>{{ message }}</p>
	<input v-model="message">
</div>
<script type="text/javascript">
	var app6 = new Vue({
		el: '#app-6',
		data: {
			 message: 'Hello Vue!'
		}
	})
</script>

输出:输入框内容变更是上面

标签内容同时变更。

image-20240124195614858

v-model的语法糖

v-on:input

v-bind:value

v-model的修饰符拓展

v-model.lazy 惰性更新

v-model.number 字符串数字转,从string换为number

v-model.trim 去除前后空格

基础指令拓展

v-if和v-show的区别

v-show和v-if机制一样,但是v-show是通过display:none的方式来控制元素显示与隐藏

优先级v-for>v-if

v-if和v-for可以一起使用,但是不推荐。当它们处于同一节点,v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中,会造成性能浪费。

解决办法:

  1. 使用计算属性
  2. 可以将 v-if 置于外层元素 (或 <template>) 上

标签:el,vue,app,基础,Vue,指令,new,data
From: https://www.cnblogs.com/dutianyu/p/17985857

相关文章

  • Linux网络编程基础API
    目录socket地址API创建socket命名socket监听socket接收连接发起连接关闭连接数据读写带外标记地址信息函数socket选项网络信息APIsocket地址API主机字节序和网络字节序在Linux系统中,主机字节序(HostByteOrder)和网络字节序(NetworkByteOrder)是两个重要的概念。主机字节序......
  • Linux基础46 ansible概述, 结构, 安装与配置文件, 主机清单配置
    Ansible学习一、Ansible概述1.什么是ansible?Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。2.自动化工具1.puppet学习难,安装ruby环境难,没......
  • vue3中使用animate.css+wow.js
    官网链接:animatewow.js版本声明:"dependencies":{"vue":"^3.3.11","animate.css":"^4.1.1","wow.js":"^1.2.2"},1.安装:npminstallanimate.css--savenpminstallwow.js......
  • Python三方库:Pika(RabbitMQ基础使用)
    Python有多种插件都支持RabbitMQ,本文介绍的是RabbitMQ推荐的Pika插件。使用pip直接安装即可pipinstallpika。一、RabbitMQ简介1.MQ简介MQ(MessageQueue,消息队列),是一个在消息传输过程中保存消息的容器,多用在分布式系统之间进行通信。MQ优势应用解耦:提高系统容错性和可......
  • python 面向对象专题(23):基础(14)类对象、实例对象、类属性、实例属性、类方法、实例方法
    1简易理解(快速理解)类对象:定义的类就是类对象实例对象:类对象实例化后就是实例对象类属性:定义在init外部的变量实例属性:定义在__init__内部的带有self.的变量类方法:定义在类对象中且被@classmethod装饰的方法就是类方法实例方法:定义在类对象中,且......
  • js/ts中Date类的ref响应式 -- VUE3
    现象:Date对象无法响应式原因:Date是个深层对象,外面那层可以响应,但是更改里面的层,则不会被侦测到改动解决:强制触发副作用即可参考文档:https://cn.vuejs.org/api/reactivity-advanced.html#triggerref<template><divclass="cnblogs_yucloud">{{DateTime}}</div>......
  • 鸿蒙开发之ArkTS基础知识
    一、ArkTS简介ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。了解ArkTS之前,我们需要先了解下ArkTS、TypeScript和JavaScript之间的关系。JavaScri......
  • 区块链链上交互基础概念
    1.RPC(远程过程调用)RPC(RemoteProcedureCall)RPC,即远程过程调用,是一种强大的技术,它允许一个计算机上的程序在另一台位于不同位置的计算机上执行过程。在区块链的背景下,RPC成为与区块链节点交互的重要工具。RPC,orRemoteProcedureCall,isapowerfultechnologythatena......
  • 共话 AI for Science | 北京大学王超名:BrainPy,迈向数字化大脑的计算基础设施
    导读:2023和鲸社区年度科研闭门会以“对话AIforScience先行者,如何抓住科研范式新机遇”为主题,邀请了多个领域的专家学者共同探讨人工智能在各自领域的发展现状与未来趋势。在脑科学领域,数字化大脑通过数学模型和计算机仿真对大脑进行精确的建模和重构,可以更好地理解和探索大脑......
  • vue 浏览器通知
    noticeRemind(target){   constnotificationInstanceArr=[]   //constnotificationAudio=newAudio('https://img-fe.tengzhihh.com/audio/c58fb135c2546f.mp3')   consthandleMessageFocus=(target)=>{    //可以在这里根据新消息t......