vue那些你不知道的隐藏知识

欢迎大家阅读本篇文章,相信很多人之前只是听说过Vue并浅浅的了解过,现在本博主带大家一起了解一下Vue的用处以及隐藏小知识。

Vue 是一套用于构建用户界面的渐进式框架。它的特点就是简单、高效,生态丰富(插件多)。简单的介绍就到这里吧,接下来带大家走进Vue,一起看下丰富多彩的框架世界。

一、创建应用实例

createApp 函数创建一个新的应用实例,完整代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第一个vue案例</title>
		<script src="../js/vue.js"></script>
	</head>
	<body>
	    <div id="app">
   		hello Vue!
	    </div>
	    <script>
		const app = Vue.createApp({
  			data() {
    				return { count: 4 }
 			 }
		})
		const vm = app.mount('#app')
		console.log(vm.count) // => 4
	    </script>
	</body>
</html>

二、Vue模板语法-文本渲染

这里我们介绍一下模板语法,指令 是带有 v- 前缀的特殊 attribute。指令 的属性值预期是单个 JavaScript 表达式

文本渲染-{{}}

{{}}语法

<div> {{msg}}</div>
const app = Vue.createApp({
  data() {return { msg: ‘你好Vue3’ } }
})
const vm = app.mount('#app')

{{}}中的表达式

对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持。如:

{{ count + 1 }} 

{{ ok ? 'YES' : 'NO' }}

{{ msg.split('').reverse().join('') }}

但是每个绑定都只能包含单个表达式,所以下面的例子都不会生效

<!--  这是语句,不是表达式:-->

{{ var a = 1 }}

<!-- 流程控制也不会生效,请使用三元表达式 -->

{{ if (ok) { return message } }}

文本渲染 v-text指令

v-text指令 是带有 v- 前缀的特殊属性。

<div v-text="msg"> {{msg}}</div>

v-html指令 为了输出真正的 HTML,你需要使用v-html

<div v-html="raw"></div>


<div v-text="raw"></div>
<div >{{raw}}</div>

三、Vue模板语法-属性渲染

指令参数

指令是带有 v- 前缀的特殊 attribute。指令 属性值预期是单个 JavaScript 表达式

一些指令能够接收一个“参数",在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML 属性:

<div v-bind:title="title"> 学前端,头发掉的没有那么多</div>

属性渲染

我们可以使用v-bind指令给html标签动态的绑定属性。

<button v-bind:disabled="canUse">按钮</button>

// v-bing可以简写为:
<button :disabled="canUse">按钮</button>
<div :title="title"> 学前端,头发掉的没有那么多</div>

四、条件渲染

条件渲染 v-if 

指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 真 值的时候被渲染。

<div v-if="isLogin">你好,木木!</div>

// 也可以用 v-else
<div v-else>请登录后操作</div>

v-else-if 多重条件渲染

<div id="app">
	<div v-if="score>=90">优秀</div>
	<div v-else-if="score>=80">良好</div>
	<div v-else-if="score>=70">中等</div>
	<div v-else-if="score>=60">及格</div>
	<div v-else>不及格,哥们需要努力鸭!</div>
</div>

条件渲染 v-show 

另一个用于根据条件展示元素的选项是 v-show 指令

<div v-show="canShow">我喜欢你</div>  

v-show与v-if区别

v-show CSS方法隐藏

v-if  移除dom节点方式隐藏 频繁切换用v-show 反之用v-if

五、列表渲染

v-for

我们用 v-for 指令根据一组数组的选项列表进行渲染。v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名。

<li v-for="item in items">
   {{item}}
</li>

data(){
      return {items:['angular','react','vue','jquery']}
}

你也可以用 v-for 来遍历一个对象的 property。

<li v-for="value in obj">
   {{value}}
</li>

data(){
      return {obj:{title:"Vue3.0入门",author:"木木",pdate:"2022-3-1"}}
}


// v-for 还支持一个可选的第二个参数,即当前项的索引。

<li v-for="(item,index) in items" >
   {{index}}-{{item}}
</li>

data(){
      return {items:['angular','react','vue',jquery]}
}

v-for  唯标识符 key

为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一的 key

<li v-for="(item,index) in items"  key="item.id" >
...
</li>

不建议使用index作为key的值(只要key的值唯一就行)

v-for 也可以接受整数。在这种情况下,它会把模板重复对应次数。

<div v-for="n in 10" :key="n">{{ n }} </div>

v-for与v-if一同使用

注意我们不推荐在同一元素上使用 v-if 和 v-for 可以把 v-for 移动到 <template> 标签中来修正:

<template v-for="todo in todos" :key="todo.name">
  <li v-if="!todo.done">
    {{ todo.name }}
  </li>
</template>

六、事件

监听事件

我们可以使用 v-on 指令 (通常缩写为 @ 符号) 来监听 DOM 事件,并在触发事件时执行一些 JavaScript。

<button @click="counter++">{{counter}}</button>
<button v-on:click="counter--">{{counter}}</button>

Vue.createApp({
  data() {
    return {   counter: 1   }
  }
}).mount('#app')

事件处理方法

许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。

<button @click="greet">问候</button>

Vue.createApp({
    data(){return{name:'vue'}},
    methods: {        greet(event){
            alert('你好'+this.name)
       }     }  
}).mount('#app')

内联处理器中的方法

除了直接绑定到一个方法,也可以在内联 JavaScript 语句中调用方法:

<button @click="say('你好')">问候你好</button>
<button @click="say('吃饭了没')">问候吃饭</button>

Vue.createApp({
        methods:{
            say(msg){alert(msg)}
        }  
}).mount('#app')
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值