0
点赞
收藏
分享

微信扫一扫

你知道多少vue指令

WikongGuan 2022-05-01 阅读 61

目录

  

浅聊vue指令

1.为什么学vue指令

2.指令

2.1数据绑定

2.2列表渲染

2.3事件监听

2.3.1 v-on

2.4条件渲染

2.5其他指令

3.自定义指令

3.1实践


浅聊vue指令

 <div id="root">
     //模板语法
     <h1>Hello{{name}}</h1>
 </div>
 <script type="text/javascript">
         Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
         new Vue({
             el:'#root',
             data:{
       name:'尚硅谷'
    }
  })

1.为什么学vue指令


2.指令


2.1数据绑定

2.1.1 v-bind

数据只能从vue实例中的data流向页面

结构如下:

 <div id="root">
 单向数据绑定:<input type="text" :value="name"><br/>
 <div/>
 <!--js部分与前面一样-->

效果就是

页面出现一个input框,里面有data中name的值。

2.1.2v-model

数据不仅能从data流向页面,还可以从页面流向data。

结构如下

 
<div id="root">
 单向数据绑定:<input type="text" v-model:value="name"><br/>
 <div/>
 <!--js部分与前面一样-->


2.2列表渲染

使用指令v-for

eg:

<div id="root">
             <!-- 遍历数组 
             <h2>人员列表(遍历数组)</h2>
             <ul>
                 <li v-for="(p,index) of persons" :key="index">
                     {{p.name}}-{{p.age}}
                 </li>
             </ul>
 <div/>
 new Vue({
     el:'#root',
     data:{
     persons:[
     {id:'001',name:'张三',age:18},
     {id:'002',name:'李四',age:19},
     {id:'003',name:'王五',age:20}
     ],
 })

2.2.1了解在v-for中index和key的区别

diff算法

这是通过index为索引的遍历数组

通过key为索引遍历数组时。效果如下

2.3事件监听


2.3.1 v-on

绑定事件监听, 可简写为@后面添加事件

格式如下:

 
<button @click="showInfo1">点我提示信息</button>

2.4条件渲染

2.4.1 v-if

写法:

  • v-if="表达式"

  • v-else-if="表达式"

  • .v-else="表达式"

2.4.2 v-show

写法:v-show="表达式"

使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。


2.5其他指令

2.5.1 v-text

比如

<div id="root">
             <!-- 遍历数组 
             <h2>人员列表(遍历数组)</h2>
             <ul>
                 <li v-for="(p,index) of persons" :key="index">
                     {{p.name}}-{{p.age}}
                 </li>
             </ul>
 <div/>
 new Vue({
     el:'#root',
     data:{
     persons:[
     {id:'001',name:'张三',age:18},
     {id:'002',name:'李四',age:19},
     {id:'003',name:'王五',age:20}
     ],
 })

2.5.2 v-cloak

2.5.3 v-once

用法:

 <h2 v-once>初始化的n值是:{{n}}</h2>

就比如当我们绑定一个数据增加1时的点击事件时,我们点击后,绑定v-once

的节点初次会渲染,点击后不在渲染。

2.5.4 v-pre

 <h2 v-pre>Vue其实很简单</h2>


3.自定义指令

在自定义指令需要用到一个vue实例的一个属性directives

用法就是directives:{指令名:配置对象} 或 directives{指令名:回调函数}

在这些回调中会接到两个参数

element :DOM节点

binding:事件的实例

3.1实践

<div id="root">
	<h2>{{name}}</h2>
	<h2>当前的n值是:<span v-text="n"></span> </h2>
	<h2>放大10倍后的n值是:<span v-big="n"></span> </h2>
</div>
new Vue({
	el:'#root',
	data:{
		name:'尚硅谷',
		n:1
	},
directives:{
	     //big函数何时会被调用
	    //1.指令与元素成功绑定时(一上来)。
	   //2.指令所在的模板被重新解析时。
  big(element,binding){
    console.log('big',this) //注意此处的this是window
	console.log(element,binding)

		element.innerText = binding.value * 10
		},
	}

在directives属性中定义指令时,this是window

举报

相关推荐

0 条评论