• Vue前端框架的使用


    目录

    一、什么是Vue

            1.2 如何使用Vue

            1.3 el挂载点

            1.4 date属性

             二、Vue的指令

            2.1 Vue指令(v-text   v-html)

            2.2 Vue指令(v-on)

             2.3 Vue指令(v-show   v-if)

            2.4 Vue指令(v-bind)

             2.5 Vue指令(v-for)

             2.6 Vue指令(v-on的补充)

            2.7  Vue指令(v-model)

            三、总结


    一、什么是Vue

            1.2 如何使用Vue

    1. 引入Vue.js
    2. 创建Vue对象
    3. 把Vue对象挂载到一个Html双向标签上
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script type="text/javascript" src="/js/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. {{msg}}
    11. div>
    12. body>
    13. <script>
    14. /*创建Vue对象*/
    15. var app=new Vue({
    16. //el:表示把vue对象挂载到哪个表示上
    17. el:"#app",
    18. //data:vue中的数据
    19. data:{
    20. msg:"老闫真牛连vue也会,他是被逼的2。",
    21. }
    22. })
    23. script>
    24. html>

            1.3 el挂载点

            Vue实例的作用范围是什么呢

    Vue会管理el选项名中的元素及其内部的后代元素

             是否可以使用其他的选择器

    可以的,一般我们使用id选择器,因为id选择器是唯一的

             是否可以设置其他的dom元素呢?

    可以的,该dom必须是一个双标签,不能是body--html标签

            1.4 date属性

            data表示vue中定义的数据变量。 数据可以时对象,数组,普通数据类型【int double string】

    1. <div id="app">
    2. {{msg}}
    3. <p>{{msg}}p>
    4. {{hobby}}<br>
    5. {{people.name}}
    6. div>
    7. <div>
    8. {{msg}}
    9. div>
    10. body>
    11. <script>
    12. /*创建Vue对象*/
    13. var app=new Vue({
    14. //el:表示把vue对象挂载到哪个表示上
    15. el:"#app",
    16. //data:vue中的数据
    17. data:{
    18. msg:"老闫真牛连vue也会,他是被逼的2。",
    19. age: 15,
    20. hobby:["吸烟","喝酒","打牌","钓鱼"],
    21. people:{"name":"刘德华","age":18,"address":"香港"}
    22. }
    23. })
    24. script>

             二、Vue的指令

            2.1 Vue指令(v-text   v-html)

            相当于标签中的属性,加在标签内。      设置标签的文本值(textContent)

            v-text:不能解析html标签
            v-html: 可以解析html标签。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p v-text="msg">你好李焕英p>
    11. <p>你好李焕英{{msg}}p>
    12. <p v-html="msg">p>
    13. div>
    14. body>
    15. <script>
    16. /*创建Vue对象*/
    17. var app=new Vue({
    18. //el:表示把vue对象挂载到哪个表示上
    19. el:"#app",
    20. //data:vue中的数据
    21. data:{
    22. msg:"老闫真牛连vue也会,他是被逼的2。",
    23. age: 15,
    24. hobby:["吸烟","喝酒","打牌","钓鱼"],
    25. people:{"name":"刘德华","age":18,"address":"香港"}
    26. }
    27. })
    28. script>
    29. html>

            2.2 Vue指令(v-on)

            为元素绑定事件,  等价于onclick      在元素上使用οnclick="方法名"。或 $("#元素").click(function(){})

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>$Title$title>
    5. <%--导入vue得脚本--%>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. head>
    8. <body>
    9. <%--创建一个双标签--%>
    10. <div class="app">
    11. {{age}}<br>
    12. <%--绑定点击事件--触发add方法。在vue中定义方法。如果方法是无参可以省略()--%>
    13. <input type="button" value="点击" v-on:click="add"/><br>
    14. <%--vue提供了一种简洁模式@等价于v-on:--%>
    15. <input type="button" value="点击2" @click="sub"/><br>
    16. div>
    17. body>
    18. <script>
    19. /*创建一个Vue对象*/
    20. var app = new Vue({
    21. //挂载vue对象到指定得标签上,该vue对象就可以作用在该标签以及子标签内有效
    22. el:".app",
    23. data:{
    24. name:"刘德华",
    25. age:18,
    26. hobby:["你好","大家好"]
    27. },
    28. //表示vue中定义得方法。
    29. methods:{
    30. //无需添加function关键字
    31. add(){
    32. //使用上面得data数据. this当前类对象 Vue对象
    33. this.age++;
    34. },
    35. sub(){
    36. this.age--;
    37. }
    38. }
    39. })
    40. script>
    41. html>

             2.3 Vue指令(v-show   v-if)

            根据表达式的真假,切换元素的显示和隐藏

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>$Title$title>
    5. <%--导入vue得脚本--%>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. head>
    8. <body>
    9. <%--创建一个双标签--%>
    10. <div class="app">
    11. {{age}}<br>
    12. <%--v-show:判断表达式是否为真如果为真则显示指令所在得标签。通过css得display来控制标识得显示和隐藏--%>
    13. <img src="imgs/1.jpg" width="100" height="200" v-show="age>18&&age<25"/>
    14. <%--v-if:根据表达式得真假控制标签得显示。通过创建和移除标签来控制显示和隐藏。如果显示和隐藏得频率非常高,那么该标签得效率会低--%>
    15. <img src="imgs/1.jpg" width="100" height="200" v-if="age>18&&age<25"/>
    16. <br>
    17. <input type="button" value="点检" @click="fun"/>
    18. div>
    19. body>
    20. <script>
    21. /*创建一个Vue对象*/
    22. var app = new Vue({
    23. //挂载vue对象到指定得标签上,该vue对象就可以作用在该标签以及子标签内有效
    24. el:".app",
    25. data:{
    26. flag:true,
    27. age:17,
    28. },
    29. methods:{
    30. fun(){
    31. this.age++;
    32. }
    33. }
    34. })
    35. script>
    36. html>

            2.4 Vue指令(v-bind)

            设置元素的属性(比如  src,title,class) 设置元素的属性 绑定元素得属性值

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>$Title$title>
    5. <%--导入vue得脚本--%>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. <style>
    8. .myimg {
    9. border: 2px solid red;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <%--创建一个双标签--%>
    15. <div class="app">
    16. <%--v-bind:设置标签得属性--%>
    17. <img v-bind:src="imgSrc" width="100px" height="100px" v-bind:class="flag?'myimg':''"/>
    18. <%--vue提供了一种简洁模式: 省略v-bind --%>
    19. <img :src="imgSrc" width="100px" height="100px" :class="flag?'myimg':''"/><br>
    20. <input type="button" value="点击" @click="fun"/>
    21. div>
    22. body>
    23. <script>
    24. /*创建一个Vue对象*/
    25. var app = new Vue({
    26. //挂载vue对象到指定得标签上,该vue对象就可以作用在该标签以及子标签内有效
    27. el: ".app",
    28. data: {
    29. imgSrc: "imgs/1.jpg",
    30. flag: true
    31. },
    32. methods: {
    33. fun() {
    34. this.imgSrc = "imgs/dl.jpg";
    35. this.flag = !this.flag
    36. }
    37. }
    38. })
    39. script>
    40. html>

             2.5 Vue指令(v-for)

            根据数据生成列表结构  循环遍历指令   v-for="(变量名,下标) in 数组|集合"

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>$Title$title>
    5. <%--导入vue得脚本--%>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. head>
    8. <body>
    9. <%--创建一个双标签--%>
    10. <div class="app">
    11. <ul>
    12. <li v-for="(a,index) in hobby">{{index}}---->{{a}}li>
    13. ul>
    14. <table border="1" width="200" cellpadding="0" cellspacing="0">
    15. <tr v-for="(item,index) in peoples">
    16. <td>{{index}}td>
    17. <td>{{item.name}}td>
    18. <td>{{item.age}}td>
    19. <td>{{item.address}}td>
    20. tr>
    21. table>
    22. div>
    23. body>
    24. <script>
    25. /*创建一个Vue对象*/
    26. var app = new Vue({
    27. //挂载vue对象到指定得标签上,该vue对象就可以作用在该标签以及子标签内有效
    28. el:".app",
    29. data:{
    30. hobby:["游泳","爬山","看书"],
    31. peoples:[
    32. {"name":"张三1","age":15,"address":"郑州1"},
    33. {"name":"张三2","age":15,"address":"郑州2"},
    34. {"name":"张三3","age":15,"address":"郑州3"}
    35. ]
    36. }
    37. })
    38. script>
    39. html>

             2.6 Vue指令(v-on的补充)

            调用事件方法时可以传递参数   传递自定义参数,事件修饰符

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>$Title$title>
    5. <%--导入vue得脚本--%>
    6. <script type="text/javascript" src="js/vue.js">script>
    7. head>
    8. <body>
    9. <%--创建一个双标签--%>
    10. <div class="app">
    11. <table border="1" width="200" cellpadding="0" cellspacing="0">
    12. <tr v-for="(item,index) in peoples" >
    13. <td>{{index}}td>
    14. <td>{{item.name}}td>
    15. <td>{{item.age}}td>
    16. <td>{{item.address}}td>
    17. <td>
    18. <a @click="del(item)">删除a>
    19. td>
    20. tr>
    21. table>
    22. <%--keyup:键盘弹起事件 enter:回车键--%>
    23. <input type="text" name="name" @keyup.enter="show('hello')"/>
    24. div>
    25. body>
    26. <script>
    27. /*创建一个Vue对象*/
    28. var app = new Vue({
    29. //挂载vue对象到指定得标签上,该vue对象就可以作用在该标签以及子标签内有效
    30. el:".app",
    31. methods:{
    32. del(n){
    33. console.log(n);//浏览器控制台输出
    34. },
    35. show(c){
    36. alert("触发了回车键"+c);
    37. }
    38. },
    39. data:{
    40. peoples:[
    41. {"name":"张三1","age":15,"address":"郑州1"},
    42. {"name":"张三2","age":15,"address":"郑州2"},
    43. {"name":"张三3","age":15,"address":"郑州3"}
    44. ]
    45. }
    46. })
    47. script>
    48. html>

            2.7  Vue指令(v-model)

            获取和设置==表单元素==的值   (双向数据绑定)

            哪些是表单元素