Vue基础概叙

本文详细介绍了Vue.js中的核心指令如v-model、v-if/v-show、v-for,以及事件处理、样式绑定、计算属性和监听器。通过实例展示了如何使用这些特性,包括自定义指令的注册与应用,帮助读者深入理解Vue.js的动态数据绑定和响应式原理。
摘要由CSDN通过智能技术生成

1. 实例化

	<div id="app">
			<input type="text" v-model="msg"/>
			<p>{{msg}}</p>
		</div>
		<script type="text/javascript">
			const app = Vue.createApp({
				data(){
					return{msg:"你好vue"}
				}
			}).mount("#app")
		</script>

2 内置指令---文本渲染

v-text

{{msg}}

v-html

3 属性渲染

v-bind:属性名=“值”

:属性名=“值”

4 条件渲染

v-if
v-else-if
v-else

v-show

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

5 列表渲染指令

v-for=“(item,index) in list” :key="item"

item 变量的当前数据
index 当前的下标

key是给vue遍历的节点一个唯一的标识符,更好的让vue去做排序过滤等操作,为了性能的优化,要求在一个for指令里面key的值要唯一

遍历对象
v-for="(value,key) in obj"

范围
v-for="item in 5"

v-for与v-if用template
<template v-for="item in 10" >
    <p v-if="item%2===0">{{item}}</p>
</template>

6 事件响应

v-on:事件名=“事件响应”
v-on:click="num++"
@click="num++"

行内处理 @click="num++"

方法响应 @click="say"

methods:{
say(e){ //默认会有个事件参数}
}

内联传参

@click=“say(msg,$event)”
// $event当前单击的事件对象,x,y,位置,元素

say(msg,e){}

事件修饰符

.stop 阻止事件冒泡
.prevent 阻止默认事件
.once 执行一次

按键修饰符

确定那个按键被按下
.enter 回车
.esc 取消
.delete 删除
.space 空格
.left .right .up .down

系统修饰符

.ctrl
.shift
.alt

鼠标修饰符

.left .right .middle

表单绑定

v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件:

表单修饰符

.lazy  转为在 change 事件_之后_进行同步

.number 自动将用户的输入值转为数值类型

.trim 自动过滤用户输入的首尾空白字符

7监听watch

定义:监听数据的变化,执行回调函数

值类型监听
watch:{
"num":fuction(nval,ovl){
        ....
  }
}

nval 数据最新的值
oval 数据之前的值

引用类型监听
watch:{
   obj:{
        handler(nval){ ...},
       deep:true
   }
}

引用数据类型需要添加处理器handler与deep

8计算 computed

computed从现有数据计算出新的数据

对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性

(从现有数据计算出新的数据)

9 样式

1class数组语法

我们可以把一个数组传给 :class,以应用一个 class 列表:

<div :class="[activeClass, errorClass]"></div>

2Style内联样式

CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

数组语法

<div :style="[baseStyles, overridingStyles]"></div>

内置指令directives

全局注册

<div id="app">

  <input type="text" v-focus>

</div>

<script>

  const app = Vue.createApp({

  })

  app.directive('focus', {

    // 当被绑定的元素挂载到 DOM 中时……

    mounted(el) {

    el.focus() // 聚焦元素

    }

  })

  app.mount("#app")

</script>

 局部注册

const app = Vue.createApp({  

    directives: {

         focus: {

            // 指令的定义

            mounted(el) {

                 el.focus()

  }

         }

    }

}).mount("#app")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值