其他分享
首页 > 其他分享> > Vue3极速上手,全网最宝藏(建议关注)

Vue3极速上手,全网最宝藏(建议关注)

作者:互联网

文章目录


前言

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue 学习起来非常简单,本教程基于 Vue 3.0.5 版本测试。

阅读本教程前,您需要了解的知识

一、Vue3 安装

1.独立版本

我们可以在 Vue.js 的官网上直接下载最新版本, 并用sceipt标签引入

下载Vue.js.

引入Vue.js

代码如下(示例):

<script src="./js/vue.js" type="text/javascript" charset="utf-8"></script>

二、实例化

刚开始学习 Vue,我们不推荐使用 vue-cli 命令行工具来创建项目,更简单的方式是直接在页面引入 vue.global.js
文件来测试学习。

Vue3 中的应用是通过使用 createApp 函数来创建的,语法格式如下

1.模版

把app里面的内容称为模版

代码如下(示例):

<div id="app">
</div>

2.创建

创建app

代码如下(示例):

	const app=Vue.createApp({
		data(){
			return{}
			}
	})

3.挂载

代码如下(示例):

app.mount("#app")

完整的模版指令

HTML5代码如下(示例):

<div id="app">
	<p v-text="msg"></p>
</div>

JS代码如下(示例):

	
		<script type="text/javascript">
		const app=Vue.createApp({
				data(){
					return{
						msg:"刘索隆"
					}
				}
			})
			app.mount("#app")
			
			



三、内置指令

1.什么是内置指令

指令 是带有 v- 前缀的特殊 attribute。指令 的属性值预期是单个 JavaScript 表达式。
通俗点说就是联系html模版与javasceip数据类型。

Vue 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
Vue 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上

代码如下(示例):

	<p v-html="rawHtml">使用 v-html 指令 </span></p>
    <p>使用双大括号的文本插值: {{ rawHtml }}</p>
    

2.文本渲染

v-text ,{{}},v-html

(1).v-text

v-text 标签的内容将会被替代为对应组件实例中 msg 属性的值,如果 msg 属性的值发生了改变,标签内容也会更新。

	<div id="add">
		<p v-html="msg">使用 v-text 指令</p>
	</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{
						msg:"刘索隆"
					}
				}
			}).mount("#app")
			</script>

(2).{{}}

{{}}语法是v-text指令的另一种书写方式 ,直接写在标签内

<div id="add">
		<p v-html="msg">使用 v-html 指令 </span></p>
    	<p>使用双大括号的文本插值: {{ msg }}</p>
	</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{
						msg:"刘索隆"
					}
				}
			}).mount("#app")
			</script>

(3).v-html

使用 v-html 指令用于输出 html 代码

<div id="app">
	<p v-html="msg"></p>
</div>
		
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{
						msg:"<span style="color: red">这里会显示红色!</span>"
					}
				}
			}).mount("#app")
</script>

3.属性渲染

语法

v-bind:属性名=“值”
也可以省略v-bind直接写:属性名=“值”

		<div id="app">
			<p v-bind:title="msg">王冰冰喜欢我</p>
			<p :title="msg">王冰冰喜欢我</p>
			<button :disabled="!canUse">按钮</button>
			
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{
						msg:"是的,是真的",
						canUse:false
					}
				}
			}).mount("#app")
		</script>

条件渲染

条件指令

v-if ,v-else,v-lese-if

v-if指令

		<div id="app">
			<p v-if="isLog">我是p标签</p>
		
		</div>
		<script type="text/javascript">
			
			Vue.createApp({
				data(){
				//设置if判断为false 此时p标签内容不会显示
					return {isLog:false}
				}
			}).mount("#app")
		</script>

v-else

v-else一般紧挨v-if指令下方 两个标签中间尽量不要写别的内容

		<div id="app">
			<p v-if="isLog">请操作</p>
			<p v-else>请登陆后操作</p>
			
		</div>
		<script type="text/javascript">
			
			Vue.createApp({
				data(){
					//设置if判断为false 此时v-if指令的标签内容不会显示
					return {isLog:false}
				}
			}).mount("#app")
		</script>

v-eles-if

多重条件渲染

<div id="app">
			<p v-if="score>=90">优秀</p>
			<p v-else-if="score>=80">良好</p>
			<p v-else-if="score>=70">及格</p>
			<p v-else>不及格</p>
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
				//只显示符合要求的内容
					return{score:99}
				}
			}).mount("#app")
		</script>

v-show

v-show隐藏当前内容

	<div id="app">
			<p v-show="can">我会显示show</p>
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return {can:false}
				}
			}).mount("#app")
		</script>

v-if与v-show的区别

列表渲染

v-for指令

循环使用 v-for 指令。
v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。
v-for 可以绑定数据到数组来渲染一个列表:

<div id="app">
			<ul>
				<!-- key属性为了让vue内部给遍历的节点给一个唯一的标识 以便更好的请排序过滤等操作 为了优化性能 key的要唯一 -->
				<li v-for="(item,index) in list" :key="item">{{item}}-{{index+1}}</li>
			</ul>
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return {list:["Vue","css","html"]}
				}
			}).mount("#app")
		</script>

遍历对象

语法

v-for="(value,key) in obj"


	 	<div id="app">
			<div v-for="(value,key) in obj" :key="key">{{key}},{{value}}</div>
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{obj:{title:"vue3入门",author:"索隆",pdate:"2022-2-24"}}
				}
			}).mount("#app")
		</script>

v-for与v-if

v-for与v-if用template

		<div id="app">
			<template v-for="item in 10">
				<p v-if="item%2===0">{{item}}</p>
			</template>
		</div>
		<script type="text/javascript">
			
			Vue.createApp({
				data(){
					return{}
				}
			}).mount("#app")
		</script>

案例分享

简单步进器

	<div id="app">
			<p>
				<button @click="add(-1)">-</button>
				<span>{{num}}</span>
				<button @click="add(1)">+</button>
			</p>
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{num:1}
				},
				methods:{
					add(n){
						this.num+=n
					}
				}
			}).mount("#app")
		</script>

选项卡

	<style type="text/css">
		.bg{
			color: aqua;
			background-color: black;
		}
		
	</style>
	
	</head>
	<body>
		<div id="app">
			<p>
				<button  @click="num=1"   :class="num===1?'bg':''">html</button>
				<button  @click="num=2" :class="num===2?'bg':''">css</button>
				<button  @click="num=3" :class="num===3?'bg':''">js</button>	
			</p>	
			<div v-if="num===1">html内容</div>
			<div v-if="num===2">css内容</div>
			<div v-if="num===3">js内容</div>	
		</div>
		<script type="text/javascript">
			Vue.createApp({
				data(){
					return{num:1}
				}
			}).mount("#app")
		</script>
	</body>

标签:Vue,createApp,app,全网,Vue3,return,data,mount,极速
来源: https://blog.csdn.net/sobject/article/details/123120375