vue中的常用指令和动态绑定

vue中常用指令

1.v-bind 想要让标签上的属性使用data中的数据,前面加上v-bind,简写 :。

2.v-on 给元素加事件,v-on:click=“say”,方法定义在methods里面,
简写@click="say“。

3.v-text 跟插值表达式功能类似,可以向指定元素加入数据。

4.v-html 可以将带有标签的字符串,渲染到指定的额元素中。

5.v-show 指令给一个bool类型,如果为true,显示。否则false,不显示。

6.v-if 用法同v-show

扩展:v-show和v-if的区别?
当条件为真时,都可以。
当条件为假时,v-if是删除dom节点,v-show是隐藏dom节点。
如果在页面频繁的使用时,使用v-show。如果页面使用只有初始化一次是否显示时,使用v-if。
template 他是透明标签。这个标签只有v-if可以控制他的添加和删除,v-show不好使

7.v-else-if 配合v-if使用,需要元素相连的关系。

8.v-else 配合v-if 使用,相连,没有条件

9.v-for 循环

循环数组

在这里插入图片描述
如果在遍历的过程中不需要使用索引值,v-for=“movie in movies”,一次从movies中取出movie,并且在元素内容中,我们可以使用插值已发,来使用movie。
如果在遍历的过程中,我们需要拿到元素在数组中的索引值,v-for=“(movie,index)in movies”,其中index就代表了取出的movie在原数组的索引值。

循环对象

在这里插入图片描述

组件的key的属性在这里插入图片描述

10.v-once. vue模板只执行渲染一次

  1. v-ore 元素加上指令后,不会渲染vue模板,一般跳过写好的静态资源

  2. v-cloak 做用是解决插值表达式闪烁的问题

  3. v-model 双向数据绑定

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>常用指令v-model</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div class="app">
        <!-- 数据绑定 -->
        {{msg}}----{{arr}}----{{age}}----{{users}}
        <!-- 双向数据绑定 -->
        <input type="text" v-model="name">
        <select v-model="tag">
            <option value="01">01</option>
            <option value="02">02</option>
        </select>
        <input type="checkbox" value="01" v-model="test">
        <input type="checkbox" value="02" v-model="test">
        {{name}}----{{tag}}----{{test}}

    </div>
    <script>
        var vm = new Vue({
            el: '.app', //指定关联的元素
            data: { //存储数据
                msg: 'Hello World',
                arr: [1, 2, 3],
                age: 21,
                users: {
                    id: 12,
                    name: '秋香'
                },
                name: '',
                test: '',
                tag: '01'
            }
        });
    </script>
</body>

</html>

动态添加样式

vue实现点击切换改变样式

html代码

<ul>
    <li class="box" v-for="(list,index) in dataList" :key="index" :class="{'bor':clicked==index}" @click="changeTab(index)">{{list}}</li>
</ul>

js代码

export default {
    data(){
        return{
            dataList:["选项1","选项2","选项3","选项4","选项5","选项6"],
            clicked:0   //标识,初始化默认选中第一项
        }
    },
    methods:{
        changeTab(index){
            this.clicked = index;
        }
    }
}

css样式

.bor{
   border:2px solid black;
}

效果
在这里插入图片描述

:style

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
<body>
  <div id='app'>
  
    <h1 :style="{color:'red','font-weight':200}">这是一个H1</h1>
 
    <h1 :style="styleObj1">这是一个H1</h1>
 
    <h1 :style="[styleObj1,styleObj2]">这是一个H1</h1>
 
  </div>
</body>
<script src="vue.min.js"></script>
<script>
  var vm = new Vue({
    el:'#app',
    data:{
      styleObj1:{color:'blue','font-weight':200,'font-size':'40px'},
      styleObj2:{'font-style':'italic'},
    }
  });
</script>
</html>
 
三目实现
html :style="{color:(index==0?conFontColor:'#000')}"
html :style="[{color:(index==0?conFontColor:'#000')},{fontSize:'20px'}]"
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页