Vue-01---初识Vue

news2024/9/24 12:56:02

一.搭建Vue开发环境

不建议初学者直接使用vue-cli脚手架
不建议初学者使用开发工具直接创建Vue工程
直接在html中用script引入
            浏览器安装Vue Devtools插件
            CDN链接引入(不建议):        
 

<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.js"></script>//完整版(包含完整的警告和调试模式)
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>//压缩版(删除了警告)
             vue.js文件引入
<script src="js/vue.js"></script>//完整版(包含完整的警告和调试模式)
<script src="js/vue.min.js"></script>//压缩版(删除了警告)

二.创建Vue对象

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
	<!-- 引入Vue -->
    <script src="js/vue.js"></script>
</head>
<body>
<!--创建容器-->
<div id="root">
    <h1>学校名称是:{{schoolName}}</h1>
	<h1>学校地址是:{{schoolAddress}}</h1>
	<h1>1+1={{1+1}}</h1>
	<h1>班级名称:{{className.toUpperCase()}}</h1>
	<h1>当前时间:{{Date.now()}}</h1>
</div>


</body>
<script>
    /*3.创建vue对象*/

    new Vue({
        el:'#root',
        data(){
        return{
           schoolName:'许昌学院',
           schoolAddress:'许昌市八一东路',
           className: 'kd42',
           myUrl:'http://www.baidu.com'
			}
        }
    });
</script>
</html>

注意区分:js表达式 和 js代码(语句)

    表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方:
    (1). a
    (2). a+b
    (3). demo(1)//函数 这里呈现的是返回值
    (4). x === y ? 'a' : 'b'
    js代码(语句)
    (1). if(){}
    (2). `for(){}

data的两种写法:
(1)对象式:
data: {
        name: '北大青鸟翔天信鸽'
}
(2)函数式:
data(){
        return {
               name: '北大青鸟翔天信鸽'
        }
}
如何选择?
目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错

三.Vue模板语法

插值语法
功能:用于解析标签体内容
写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性

指令语法
功能:用于解析标签(包括:标签属性、标签体内容、绑定事件…)
写法:例如:v-bind:href="xxx"或省略v-bind,xxx同样要写js表达式,且可以直接读取data中的所有属性,Vue中有很多的指令,且形式都是:v-???,此处只是拿v-bind举例子
Vue 中有有很多的指令,此处只是用 v-bind 举个例子

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="js/vue.js"></script>
</head>
<body>
<!--创建容器-->
<div id="root">
    <h1>插值语法</h1>
	<h3>Hello,{{schoolName}}</h3>
	
	<hr/>
	<a v-bind:href="schoolUrl">点我去{{schoolName}}学习-A</a>
	<a :href="schoolUrl">点我去{{schoolName}}学习-B</a>

</div>


</body>
<script>
    /*3.创建vue对象*/

    new Vue({
        el:'#root',
        data(){
        return{
            schoolName:'kgc',
			schoolUrl:'http://www.baidu.com'
			}
        }
    });
</script>
</html>

四.Vue数据绑定

单向数据绑定
语法:v-bind:href ="xxx" 或简写为 :href
特点:数据只能从 data 流向页面

双向数据绑定
语法:v-mode:value="xxx" 或简写为 v-model="xxx"
特点:数据不仅能从 data 流向页面,还能从页面流向 data
v-model只能应用在表单类元素(输入类元素)上,即有value值的元素,因为其默认与value绑定

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="js/vue.js"></script>
</head>
<body>
<!--创建容器-->
<div id="root">
    <!-- 简写 -->
	单向数据绑定:<input type="text" :value="schoolName"><br>
	双向数据绑定:<input type="text" v-model="schoolName"><br>

</div>


</body>
<script>
    /*3.创建vue对象*/

    new Vue({
        el:'#root',
        data(){
        return{
            schoolName:'kgc',
			schoolUrl:'http://www.baidu.com'
			}
        }
    });
</script>
</html>

五.MVVM模型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初识Vue</title>
		<!-- 1.搭建Vue环境 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<!-- 2.创建容器 -->
		<div id="root">
			<p><input type="text" :value="userName"/></p>
			<p><input type="text" :value="userName"/></p>
			<hr>
			<p><input type="text" v-model:value="userCode"/></p>
			<p><input type="text" v-model:value="userCode"/></p>
		</div>
		
	</body>
	
	
	
	<script>
		<!-- 3.创建Vue对象 -->
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
//这个地方创建一个vm的对象就行了
		var vm = new Vue({
			el: '#root',
			data(){
				return{
					userName:'root',
					userCode:'张三'
				}
			}
		});
		
		
	</script>
</html>

 这个可视化的model模型,就是在代码运行完毕呈现出效果后,在浏览器中按F12键点开控制台在控制台中输入Vue对象中的各种参数

 六.Vue事件处理

注意事项
1.使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;
2.事件的回调需要配置在methods对象中,最终会在vm上 (无需做数据代理);
3.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象;
4.@click=“demo” 和 @click=“demo($event)” 效果一致,但后者可以传参;
5. 默认事件形参: event, 隐含属性对象: $event
事件修饰符
1.prevent:阻止默认事件(常用);
2.stop:阻止事件冒泡(常用);
3.once:事件只触发一次(常用);
4.capture:使用事件的捕获模式;
5.self:只有event.target是当前操作的元素时才触发事件;
6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初识Vue</title>
		<!-- 1.搭建Vue环境 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<!-- 2.创建容器 -->
		<div id="root">
			<p><input type="text" v-model="name"/></p>
			<p><button @click="dianji">点击一下1</button></p>
			<p><button @click="dianji2($sevent)">点击一下2</button></p>
			<!-- prevent:阻止默认事件(常用) -->
			<a @click.prevent="dianji3" href="http://www.baidu.com">点击一下3</a>
			<!-- stop:阻止事件冒泡(常用) -->
			<div @click="divClick" style="width: 100px;height: 100px;border: 1px solid red;">
				<button @click.stop="dianji3" >点击一下4</button>
			</div>
			<!-- .once:事件只触发一次(常用); -->
			<button @click.once="dianji4" >点击一下5</button>
		</div>
		
	</body>
	
	
	
	<script>
		<!-- 3.创建Vue对象 -->
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		var vm = new Vue({
			el: '#root',
			data(){
				return{
					name:'admin',
					num:0
				}
			},
			methods: {
				divClick(){
					alert("DIVCLICK")
				},
				dianji(){
					console.info(this)//在Methods对象中,this表示的是VM,也就是vue实例
				    console.info(this.name)
					this.name='root'
				
			},
			dianji2(param){
				alert(param)
			},
			dianji3(){
				alert("dianji3")
			},
			dianji4(){
				this.num++;
				console.info("点击次数" + this.num)
			}
			
			},
			
		});
		
		
	</script>
</html>

键盘事件
1.Vue中常用的按键别名:
    删除:delete(“删除”和“退格”),
    回车:enter,退出:esc,空格:space,
    换行:tab (必须配合keydown去使用),
    上:up,下:down,左:left,右:right
2.Vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(短横线命名)
3.系统修饰键(用法特殊):ctrl、alt、shift、meta
(1).配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
(2).配合keydown使用:正常触发事件。
4.也可以使用keyCode去指定具体的按键(不推荐)
5.Vue.config.keyCodes.自定义键名 = 键码,可以去定制按键别名= 键码,可以去定制按键别名

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初识Vue</title>
		<!-- 1.搭建Vue环境 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<!-- 2.创建容器 -->
		<div id="root">
			<!-- <input type="text" placeholder="按下回车键提示输入1" @keydown.13="showInfo">
			<input type="text" placeholder="按下回车键提示输入2" @keydown.enter="showInfo">
			<input type="text" placeholder="按下回车键提示输入3" @keydown.ctrl.alt.enter.once="showInfo">
			<input type="text" placeholder="按下回车键提示输入4" @keydown.delete="showInfo"> -->
			<input type="text" placeholder="按下回车键提示输入1" @keydown.13="showInfo">
			<input type="text" placeholder="按下回车键提示输入2" @keydown.enter="showInfo">
            <input type="text" placeholder="按下回车键提示输入3" @keydown.ctrl.alt.enter.once="showInfo">	
			<input type="text" placeholder="按下回车键提示输入4" @keydown.delete="showInfo">
			
		</div>
		
	</body>
	
	
	
	<script>
		<!-- 3.创建Vue对象 -->
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		var vm = new Vue({
			el: '#root',
			data(){
				return{
					name:'admin'
				}
			},
			methods: {
				showInfo(e){
					console.info(e.target.value)
				}
			
			},
			
		});
		
		
	</script>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初识Vue</title>
		<!-- 1.搭建Vue环境 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<!-- 2.创建容器 -->
		<div id="root">
			<button @click="showInfo('A')">点击一下1</button>
			<button @click.ctrl="showInfo('B')">点击一下2</button>
			<button @click.alt="showInfo('C')">点击一下3</button>
			<button @click.shift="showInfo('D')">点击一下4</button>
			<button @click.exact="showInfo('E')">点击一下5</button>
			
			<button @click.right="showInfo('F')">点击一下6</button>
			
			<button @dblclick="showInfo('G')">点击一下7</button>
			
			<button @dblclick="showInfo(name)">点击一下8</button>
		</div>
		
	</body>
	
	
	
	<script>
		<!-- 3.创建Vue对象 -->
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		var vm = new Vue({
			el: '#root',
			data(){
				return{
					name:'admin',
					num:0
				}
			},
			methods: {
				showInfo(e){
					console.info(e)
				}
			},
		});
		
		
	</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是电子负载?

1、简介 电子负载在硬件测试中是使用频率比较高的设备之一&#xff0c;是一种从电源吸收电流并消耗功率的测试仪器&#xff0c;基本都是通过控制内部功率器件&#xff08;Mosfet&#xff09;导通量&#xff0c;依靠功率管的耗散功率消耗电能。很多初入硬件或者硬件测试的小伙伴…

物联网安全工作梳理(0)

物联网相比互联网,设备更多,协议更多,标准不统一,安全更脆弱,因此相当于互联网的安全漏洞增量。物联网安全整改流程相比互联网在增量上工作更多些。本篇将从八个方面阐述物联网安全整改工作总结,每个面都是一项大工程。 物联网与互联网差异 物联网安全可分为8大类来说明…

PostgreSQL 新闻速递 谷歌基于POSTGRESQL 兼容数据库提供更大规模的数据库服务

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

国产仪器 6595A户外多通道光伏组件测试仪

6595A测试仪主机具备自主测试和显示能力&#xff0c;提供真6路电子负载&#xff0c;提供多至6通道的实时同步测试能力&#xff0c;并可根据用户需求订制通道数量及测试模块的测试功率。多台测试仪通过联网控制组成评测系统&#xff0c;可进行多至300个光伏组件的同步测试&#…

Threejs——五、点线模型对象、三角形概念、几何体顶点位置,顶点索引、法线以及对几何体进行旋转缩放和平移

文章&#xff1a; Three——一、初识Three以及基础的前端场景搭建(结尾含源码)Three——二、加强对三维空间的认识Three——三、动画执行、画布大小、渲染帧率和相机适配体验Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用Three——五、点线模型对象、三角形概念…

基于主从博弈的综合能源服务商动态定价策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用 Sa-Token 完成踢人下线功能

一、需求 在企业级项目中&#xff0c;踢人下线是一个很常见的需求&#xff0c;如果要设计比较完善的话&#xff0c;至少需要以下功能点&#xff1a; 可以根据用户 userId 踢出指定会话&#xff0c;对方再次访问系统会被提示&#xff1a;您已被踢下线&#xff0c;请重新登录。…

05/09报告

1. 使用10w条数据 评分分布情况&#xff1a; 2. 训练集、测试集、验证集为7:2:1 1&#xff09;2分类&#xff08;3分及以下标签为0&#xff0c;3分以上标签为1&#xff09; 模型评估&#xff1a; 测试评论&#xff1a; 预测结果&#xff1a; 2&#xff09;5分类&#xff08;标签…

Kyligence Zen 产品体验 ——AI数据指标洞察专家

大势所趋&#xff1a;从报表模式到指标模式 Kyligence Zen----一个立志于打造一个人人可用的敏捷指标工具 一、基本信息 体验时间 2023年5月 体验博主 风尚云网 目标产品 Kyligence Zen 开发团队 跬智信息&#xff08;Kyligence&#xff09;由 Apache Kylin 创始团队于…

干货!ICLR:基于学习的分布式多视角图像压缩

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者介绍 张鑫杰 香港科技大学电子与计算机工程系在读博士生&#xff0c;研究方向为图像视频压缩&#xff0c; 个人主页为https://xinjie-q.github.io/ 内容简介 多视角图像压缩在3D相关应用程序中起着至关重要…

搞定面试官-JUC面试专题强化

JUC是java.util.concurrent包的简称。 1. AQS高频问题 1.1 AQS是什么&#xff1f; 先看类位置 AQS是JUC下大量工具的基础类&#xff0c;很多工具都基于AQS实现的&#xff0c;比如lock锁, CountDownLatch&#xff0c;Semaphore&#xff0c;线程池等等都用到了AQS。 AQS中有一…

联合群美叶彦文:坚持,只要有一口气,能坚持多久,就坚持多久

创业之路的成败得失就看有多坚持。 成功并不是终点&#xff0c;失败并不是终结&#xff0c;只有勇气才是永恒。 Success is not final,failure is not fatal,it is the courage to continue that counts. ——温斯顿丘吉尔 迪斯雷利曾经说过&#xff1a;“成功的奥秘在于目标…

sqli-labs通关(十八)~(二十二)

第十八关 输入正确的账号密码&#xff0c;就会返回显示我们的User Agent信息&#xff0c;这是在我们的post请求里面的信息 所以我们用burp suite拦截抓包 那我们就可以对这个User Agent下手进行注入 当我们把它改成1时&#xff0c;出现如下报错信息&#xff0c;可以知道语句…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题349两个数组的交集) 2023.5.9

目录 前言算法题&#xff08;LeetCode刷题349两个数组的交集&#xff09;—&#xff08;保姆级别讲解&#xff09;分析题目&#xff1a;什么是哈希表&#xff1f;什么是冲突&#xff1f;常见的三种哈希结构选择正确的哈希结构 算法思想&#xff08;画图展示&#xff09;&#x…

手写MyBatis第1-10章的总览

手写Mybatis的第一章到第十章的代码都放在了GitHub上&#xff0c;GIT地址&#xff1a; my-mybatis/my-mybatis at master dufGIT/my-mybatis (github.com) 从第一章到第十章目前已经涉及很多类了&#xff0c;但是它整体的模块还是很清晰的&#xff0c;我将这十章大致的内容用…

Java基础语法(十五):List、Set和Map

目录 前言 一、List 二、Set 三、Map 总结 前言 Java是一种很流行的编程语言&#xff0c;拥有很多被广泛应用的数据结构&#xff0c;其中List、Set和Map是最常用的几个。本文将为您介绍这三种数据结构的基本概念和用法。 从上面的集合框架图可以看到&#xff0c;Java 集合…

企企通携手「大自然家居」,启动供应链与采购数字化项目启动

“大自然家居_我爱大自然”。健康环保&#xff0c;是大自然家居独特价值&#xff0c;也是大自然发展的DNA。 当大家对家居行业还停留在低效耗能、环境污染的传统印象时&#xff0c;作为“亚洲品牌500强”的「大自然家居&#xff08;中国&#xff09;有限公司」&#xff08;以下…

【LLM系列之FLAN-T5/PaLM】Scaling Instruction-Finetuned Language Models

论文题目&#xff1a;《Scaling Instruction-Finetuned Language Models》 论文链接&#xff1a;https://arxiv.org/pdf/2210.11416.pdf github链接&#xff1a;https://github.com/google-research/text-to-text-transfer-transformer#released-model-checkpoints huggingface…

量子计算(13)基础知识4:量子测量

量子测量是量子电路中最后一个元素&#xff0c;在电路中我们经常用到。下面&#xff0c;我将描述量子测量的数学依据以及与量子测量相关的科学定理。 目录 一、量子测量 1、理论知识 2、计算基下测量单量子比特 二、两个原理 1、延迟测量原理 2、隐含测量原理 一、量子测…

RDA5850蓝牙多合一芯片之测试与调试

上次说到一款比较经典的蓝牙芯片《一款非常经典的蓝牙多媒体芯片RDA5850》,于是就用那块二手音箱小板来试试能不能调通。首先看芯片手册发现 有HST_TXD和HST_RXD两个引脚。通过以往的经验就可以分析出 这两个就是用来调试烧写的引脚。 再看前篇文章(同下图)的引脚分布,同样…