什么是Vue、Vue的特点、Vue的优点及性能优化、应用场景

本文介绍了Vue.js,一个轻量级的JavaScript框架,专注于简化DOM操作和响应式编程。Vue的特点包括响应式编程和组件化,其优势在于易学性、双向数据绑定、组件化和快速运行。文章还详细讲解了如何在WebStorm中创建Vue工程,以及Vue的各种指令,如v-text、v-on、v-show/v-if、v-bind、v-for和v-model的使用,并探讨了Vue与axios的结合及后台代码的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Vue的简介

1.1:什么是Vue?

Vue.js是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页面应用的Web应用框架,它是一个Javascript框架,作用:简化dom的操作,以及响应式编程。

1.2:Vue的特点和优势

vue两大特点:响应式编程、组件化。

vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom,这样大大加快了访问速度和提升用户体验。而且他的第三方ui库很多节省开发时间。

2.在webstorm中创建工程

1.引入vue.js文件

<script type="text/javascript" src="js/vue.js"></script>

2.在body创建一个div标签

在这里插入代码片<body>
    <div id="app">
        {{msg}}
    </div>
</body>

3.创建自己的js代码

<script>
    let app=new Vue({
        el:"#app",
        data:{
            msg:"我喜欢睡觉"
        },
        methods:{
            fun(){
                this.msg="我喜欢玩游戏"
            },
        }
    })
</script>

3.el的属性

把当前vue对象挂载到指定的标签元素上,使其vue生效。

4.Vue的指令介绍

1.设置标签的文本值(textContent)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <span>{{msg}}</span><hr>

    <span v-text="msg">你喜欢什么?</span><hr>
    <!--v-text:无法解析html标签  v-html可以解析html标签-->
    <span v-html="msg">你喜欢什么?</span>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            msg:"<font color='red'>我喜欢打麻将</font>",
        }
    })
</script>
</html>

2.v-on基础------为元素绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <span>{{msg}}</span>
    <button @click="fun">点击</button>
    <button @dbclick="fun">点击2</button>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            msg:"我喜欢睡觉"
        },
        methods:{
            fun(){
                this.msg="我喜欢玩游戏"
            },
        }
    })
</script>
</html>

3. v-show 和v-if-------根据表达值的真假,切换元素的显示和隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <img src="images/dog.jpg" width="200" v-show="age>18&&age<36"/>
    <hr>
    <!--v-show通过style中disable来控制标签的显示和隐藏   v-if:通过删除和创建标签来控制-->
    <img src="images/people.jpg" width="200" v-if="age>18&&age<36"/>
    <button @click="fun">点击</button>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            age:18
        },
        methods:{
            fun(){
                this.age++;
            }
        }
    })
</script>
</html>

4.v-bind------设置元素的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
    <style>
        .a{
            border: red solid 5px;
        }
    </style>
</head>
<body>
<div id="app">
    <!--如何让img标签中src属性引用vue对象中的数据-->
    <img v-bind:src="imgUrl"  width="200" v-bind:title="title" v-bind:class="flag?'a':''"/><br>

    <!--v-bind: 缩写为: -->
    <img :src="imgUrl"  width="200" :title="title" :class="flag?'a':''"/><br>

    <button @click="fun">点击</button>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            age:18,
            imgUrl:"images/dog.jpg",
            title:"来福",
            flag:true
        },
        methods:{
            fun(){
                this.imgUrl="images/people.jpg";
                this.title="小狗好看"
            }
        }
    })
</script>
</html>

5. v-for------循环数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <ul>
        <!--for(数据类型 b:数组){}-->
        <li v-for="(item,index) in hobby">
            {{item}}--->{{index}}
        </li>
    </ul>

    <table width="500px" border="1" cellspacing="0" class="0">
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
        <tr v-for="item in users">
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.sex}}</td>
            <td>
                <button @click="deleteUser(item.name)">删除</button>
                <button >编辑</button>
            </td>
        </tr>
    </table>


    <input type="text" @keyup.enter="fun()"/>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            hobby:["好吃","好喝","好色","好赌"],
            users:[
                {"name":"安志远","age":16,"sex":"女"},
                {"name":"陆志心","age":19,"sex":"男"},
                {"name":"马迎仙","age":15,"sex":"男"}
            ]
        },
        methods:{
            deleteUser(name){
                alert(name);
            },
            fun(){
                alert("他们都是美女");
            }
        }
    })
</script>
</html>

6.v-model----获取和设置表单元素的值. input select textarea

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <!--v-model会实现双向绑定:表达元素内容改变时,vue中对于的数据也会改变,vue中的数据改变对于的表单元素也会改变-->
    <input type="text" v-model="name" />
    {{name}}
    <button @click="dj">点击</button>
</div>
</body>
<script>
    let app=new Vue({
        el:"#app",
        data:{
            name:"张汉卿"
        },
        methods:{
            dj(){
                this.name="张学良";
            }
        }
    })
</script>
</html>

5.Vue指令总结

v-text: -----v-html

v-on:-----@

v-show:-----v-if

v-bind: 标签属性绑定----:

v-for: 循环

v-model:表单元素的双向绑定

6.vue结合axios以及后台代码

<!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>天知道</title>
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/tianindex.css" />
</head>

<body>
<div class="wrap" id="app">
    <div class="search_form">
        <div class="logo"><img src="img/logo.png" alt="logo" /></div>
        <div class="form_group">
            <input
                    type="text"
                    class="input_txt"
                    placeholder="请输入查询的天气"
                    v-model="city"
            />
            <button class="input_sub" @click="searchWeather">
                搜 索
            </button>
        </div>

    </div>
    <table width="300" border="1">
        <tr>
            <td>姓名</td>
            <td>学生编号</td>
        </tr>
        <tr v-for="item in students">
            <td>{{item.sname}}</td>
            <td>{{item.smpno}}</td>
        </tr>
    </table>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="../js/vue.js"></script>
<!-- 官网提供的 axios 在线地址 -->
<script src="../js/axios.min.js"></script>
<!-- 自己的js -->
<script>
    let app=new Vue({
        el:"#app",
        data:{
            city:"",
            studentVo:{},
            students:[],
        },
        methods:{
            searchWeather(){
                axios.post("http://localhost:8080/Student/list/1/5",this.studentVo).then(result=>{
                    this.students=result.data.data.records;
                })
            }
        }
    })
</script>



</body>
</html>
<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值