zoukankan      html  css  js  c++  java
  • Vue的学习(二)

    11、v-for 操作对象与数值:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>v-for操作对象与数值</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <!--item:表示值、key:表示键、index:表示下标-->
    13     <li v-for="(item, key, index) in user">
    14         {{index}} - {{key}} - {{item}}
    15     </li>
    16     <table border="1" width="50%">
    17         <tr v-for="v in 20">
    18             <td>{{v}}</td>
    19         </tr>
    20     </table>
    21 </div>
    22 </body>
    23 <script>
    24     var vm = new Vue({
    25         el: '#app',
    26         data: {
    27             user: {
    28                 name: '向军',
    29                 age: '22',
    30                 sex: 'boy'
    31             }
    32         }
    33     });
    34 </script>
    35 </html>

    12、v-for与computed结合功能实例:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>v-for与computed结合功能实例</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="v in stus">
    13         {{v.name}} - {{v.sex}}
    14         <input type="radio" v-model="type" value="all" /> 全部
    15         <input type="radio" v-model="type" value="girl"/> 女孩
    16         <input type="radio" v-model="type" value="boy"/> 男孩
    17     </li>
    18 </div>
    19 </body>
    20 <script>
    21     var vm = new Vue({
    22         el: '#app',
    23         computed: {
    24             stus () {
    25                 if (this.type == 'all') {
    26                     return this.user
    27                 } else {
    28                     return this.user.filter((v) => {
    29                         return v.sex == this.type
    30                     })
    31                 }
    32             }
    33         },
    34         data: {
    35             type: 'all',
    36             user: [
    37                 {name: '小明', sex: 'boy'},
    38                 {name: '小丽', sex: 'girl'},
    39                 {name: '小强', sex: 'boy'},
    40                 {name: '小花', sex: 'girl'}
    41             ]
    42         }
    43     })
    44 </script>
    45 </html>

    13、变异方法push的留言版实例的实现:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变异方法push的留言版实例讲解</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <div v-for="v in comments">
    13         <span>{{v.content}}</span>
    14     </div>
    15     <textarea v-model="current_content" cols="30" rows="10"></textarea>
    16     <button v-on:click="push">发表</button>
    17 </div>
    18 </body>
    19 <script>
    20     var vm = new Vue({
    21         el: '#app',
    22         data: {
    23             //当前用户输入内容
    24             current_content:'',
    25             comments: [
    26                 {content: '你好世界!'},
    27                 {content: '我来了!你呢?'}
    28             ]
    29         },
    30         methods: {
    31             push() {
    32                 var content = {content:this.current_content};
    33                 this.comments.push(content);
    34                 this.current_content = ''
    35             }
    36         }
    37     })
    38 </script>
    39 </html>

    14、变异方法unshit&pop&shift的实例应用:

     1 <!DOCTYPE html>
     2 <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变异方法push的留言版实例讲解</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="v in comments">
    13         {{v.content}}
    14     </li>
    15     <textarea v-model="current_content" cols="30" rows="10"></textarea> <br />
    16     <button v-on:click="push('end')">发表到后面</button>
    17     <button v-on:click="push('pre')">发表到前面</button>
    18     <br />
    19     <button v-on:click="del('last')">删除最后一条</button>
    20     <button v-on:click="del('first')">删除第一条</button>
    21 </div>
    22 </body>
    23 <script>
    24     var vm = new Vue({
    25         el: '#app',
    26         data: {
    27             //当前用户输入内容
    28             current_content:'',
    29             comments: [
    30                 {content: '你好世界!'},
    31                 {content: '我来了!你呢?'}
    32             ]
    33         },
    34         methods: {
    35             push(type) {
    36                 var content = {content:this.current_content};
    37                 switch (type) {
    38                     case 'end':
    39                         this.comments.push(content);
    40                         this.current_content="";
    41                         break;
    42                     case 'pre':
    43                         this.comments.unshift(content);
    44                         this.current_content="";
    45                         break;
    46                 }
    47             },
    48             del(type) {
    49                 switch (type) {
    50                     case 'last':
    51                         this.comments.pop();
    52                         break;
    53                     case 'first':
    54                         this.comments.shift();
    55                         break;
    56                 }
    57             }
    58         }
    59     })
    60 </script>
    61 </html>

    15、变异方法splice的实例应用:

     1 <!DOCTYPE html>
     2 <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变异方法push的留言版实例讲解</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="(v,k) in comments">
    13         {{v.content}} <button v-on:click="remove(k)">删除</button>
    14     </li>
    15     <textarea v-model="current_content" cols="30" rows="10"></textarea> <br />
    16     <button v-on:click="push('end')">发表到后面</button>
    17     <button v-on:click="push('pre')">发表到前面</button>
    18     <br />
    19     <button v-on:click="del('last')">删除最后一条</button>
    20     <button v-on:click="del('first')">删除第一条</button>
    21 </div>
    22 </body>
    23 <script>
    24     var vm = new Vue({
    25         el: '#app',
    26         data: {
    27             //当前用户输入内容
    28             current_content:'',
    29             comments: [
    30                 {content: '你好世界!'},
    31                 {content: '我来了!你呢?'}
    32             ]
    33         },
    34         methods: {
    35             remove(k){
    36                 this.comments.splice(k,1);
    37             },
    38             push(type) {
    39                 var content = {content:this.current_content};
    40                 switch (type) {
    41                     case 'end':
    42                         this.comments.push(content);
    43                         break;
    44                     case 'pre':
    45                         this.comments.unshift(content);
    46                         break;
    47                 }
    48             },
    49             del(type) {
    50                 switch (type) {
    51                     case 'last':
    52                         this.comments.pop();
    53                         break;
    54                     case 'first':
    55                         this.comments.shift();
    56                         break;
    57                 }
    58             }
    59         }
    60     })
    61 </script>
    62 </html>

    16、变异方法sort与reverse的实例应用:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变异方法sort与reverse的留言版实例讲解</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="(v,k) in comments">
    13         {{v.id}}  -  {{v.content}} <button v-on:click="remove(k)">删除</button>
    14     </li>
    15     <textarea v-model="current_content" cols="30" rows="10"></textarea> <br />
    16     <button v-on:click="push('end')">发表到后面</button>
    17     <button v-on:click="push('pre')">发表到前面</button>
    18     <br />
    19     <button v-on:click="del('last')">删除最后一条</button>
    20     <button v-on:click="del('first')">删除第一条</button>
    21     <button v-on:click="del()">删除全部</button>
    22     <br />
    23     <button v-on:click="reverse()">反转顺序</button>
    24     <button v-on:click="sort()">按照编号排序</button>
    25 
    26 </div>
    27 </body>
    28 <script>
    29     const vm = new Vue({
    30         el: '#app',
    31         data: {
    32             //当前用户输入内容
    33             current_content:'',
    34             comments: [
    35                 {id:2,content: '你好世界!'},
    36                 {id:4,content: '我来了!你呢?'},
    37                 {id:1,content: '快活吧!'},
    38                 {id:3,content: '真的?'},
    39             ]
    40         },
    41         methods: {
    42             sort() {
    43                 this.comments.sort((a, b) => {
    44                     return a.id<b.id;
    45                 });
    46             },
    47             reverse() {
    48                 this.comments.reverse();
    49             },
    50             remove(k){
    51                 this.comments.splice(k,1);
    52             },
    53             push(type) {
    54                 const id = this.comments.length + 1;
    55                 const content = {id,content:this.current_content};
    56                 switch (type) {
    57                     case 'end':
    58                         this.comments.push(content);
    59                         this.current_content = "";
    60                         break;
    61                     case 'pre':
    62                         this.comments.unshift(content);
    63                         this.current_content = "";
    64                         break;
    65                 }
    66             },
    67             del(type) {
    68                 switch (type) {
    69                     case 'last':
    70                         this.comments.pop();
    71                         break;
    72                     case 'first':
    73                         this.comments.shift();
    74                         break;
    75                     default:
    76                         this.comments = "";
    77                 }
    78             }
    79         }
    80     })
    81 </script>
    82 </html>

       解释:里面的 sort 方法有点问题。

    17、变异方法filter与regexp实现搜索功能:

     1 <!DOCTYPE html>
     2 <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变异方法filter与regexp实现搜索功能</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="(v,k) in comments">
    13         {{v.id}}  -  {{v.content}} <button v-on:click="remove(k)">删除</button>
    14     </li>
    15     <textarea v-model="current_content" cols="30" rows="10"></textarea> <br />
    16     <button v-on:click="push('end')">发表到后面</button>
    17     <button v-on:click="push('pre')">发表到后面</button>
    18     <br />
    19     <button v-on:click="del('last')">删除最后一条</button>
    20     <button v-on:click="del('first')">删除第一条</button>
    21     <br />
    22     <button v-on:click="sort()">按照编号排序</button>
    23     <button v-on:click="reverse()">反转顺序</button>
    24     <br />
    25     <input type="text" v-on:keyup.enter="search" v-model="search_content" />
    26 </div>
    27 </body>
    28 <script>
    29     var vm = new Vue({
    30         el: '#app',
    31         data: {
    32             //搜索内容
    33             search_content:'',
    34             //当前用户输入内容
    35             current_content:'',
    36             comments: [
    37                 {id:2,content: '你好世界!'},
    38                 {id:4,content: '我来了!你呢?'},
    39                 {id:1,content: '快活吧!'},
    40                 {id:3,content: '真的?'},
    41             ]
    42         },
    43         methods: {
    44             search() {
    45                 // this.comments = this.comments.filter(function (item) {
    46                 //   console.log(this.search_content); 这个this并没有指向当前的vm,所以这里使用ES6的语法,就会指向当前的vm
    47                 // })
    48                 this.comments = this.comments.filter((item) => {
    49                     var reg = new RegExp(this.search_content);
    50                     return reg.test(item.content);
    51                 })
    52             },
    53             sort() {
    54                 this.comments.sort(function (a, b) {
    55                     return a.id>b.id;
    56                 })
    57             },
    58             reverse() {
    59                 this.comments.reverse();
    60             },
    61             remove(k){
    62                 this.comments.splice(k,1);
    63             },
    64             push(type) {
    65                 var id = this.comments.length + 1;
    66                 var content = {id,content:this.current_content};
    67                 switch (type) {
    68                     case 'end':
    69                         this.comments.push(content);
    70                         break;
    71                     case 'pre':
    72                         this.comments.unshift(content);
    73                         break;
    74                 }
    75             },
    76             del(type) {
    77                 switch (type) {
    78                     case 'last':
    79                         this.comments.pop();
    80                         break;
    81                     case 'first':
    82                         this.comments.shift();
    83                         break;
    84                 }
    85             }
    86         }
    87     })
    88 </script>
    89 </html>

    18、vue的基本点击事件:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>vue的基本点击事件</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <li v-for="(v,k) in comments">
    13         <!--v-on:click 的简写:@click-->
    14         {{k}}  -  {{v.content}} <button @click="remove(k)">删除</button>
    15     </li>
    16 </div>
    17 </body>
    18 <script>
    19     var vm = new Vue({
    20         el: '#app',
    21         data: {
    22             comments: [
    23                 {id:2,content: '你好世界!'},
    24                 {id:4,content: '我来了!你呢?'},
    25                 {id:1,content: '快活吧!'},
    26                 {id:3,content: '真的?'},
    27             ]
    28         },
    29         methods: {
    30             remove(k) {
    31                 alert("删除:"+k);
    32                 this.comments.splice(k,1)
    33             }
    34         }
    35     })
    36 </script>
    37 </html>

    19、事件修饰符之使用$event与prevent修饰符操作表单:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>事件修饰符之使用$event与prevent修饰符操作表单</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <!--设置表单提交的时候,不刷新页面(默认行为)-->
    13     <!--方式一:-->
    14     <!--<form action="" @submit="post('php',$event)">
    15       <h1>{{times}}</h1>
    16       <button>提交</button>
    17     </form>-->
    18     <!--方式二:-->
    19     <form action="" @submit.prevent="post('php')">
    20         <h1>{{times}}</h1>
    21         <button>提交</button>
    22     </form>
    23 </div>
    24 </body>
    25 <script>
    26     var vm = new Vue({
    27         el: '#app',
    28         data: {
    29             times: new Date()
    30         },
    31         methods: {
    32             /*方式一:*/
    33             /*post(num,event) {
    34               event.preventDefault();
    35               alert(num);
    36             }*/
    37             /*方式二:*/
    38             post(num) {
    39                 alert(num);
    40             }
    41         }
    42     })
    43 </script>
    44 </html>

    20、事件修饰之stop&capture&self实例详解:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>事件修饰之stop&capture&self实例详解</title>
     6     <script src="./lib/vue.js"></script>
     7     <style>
     8     </style>
     9 </head>
    10 <body>
    11 <div id="app">
    12     <div @click="box" :style="{border:'solid 2px red'}">
    13         <!--prevent:阻止默认行为,即可以阻止 a 标签的跳转行为-->
    14         <!--stop:阻止冒泡行为,函数支持链式调用  once:动作只执行一次,一次后就失效-->
    15         <a href="http://jquery.cuishifeng.cn/load.html" @click.prevent.stop.once="link">百度</a>
    16     </div>
    17 
    18     <!--self:只有点击自己的时候才有效果,冒泡是没有效果的-->
    19     <div @click.self="box" :style="{border:'solid 2px red'}">
    20         <!--prevent:阻止默认行为,即可以阻止 a 标签的跳转行为-->
    21         <!--stop:阻止冒泡行为,函数支持链式调用-->
    22         <a href="http://jquery.cuishifeng.cn/load.html" @click.prevent="link">百度</a>
    23     </div>
    24 
    25     <!--capture:捕获行为-->
    26     <div @click.capture="box" :style="{border:'solid 2px red'}">
    27         <!--prevent:阻止默认行为,即可以阻止 a 标签的跳转行为-->
    28         <!--stop:阻止冒泡行为,函数支持链式调用-->
    29         <a href="http://jquery.cuishifeng.cn/load.html" @click.prevent="link">百度</a>
    30     </div>
    31 </div>
    32 </body>
    33 <script>
    34     var vm = new Vue({
    35         el: '#app',
    36         data: {},
    37         methods: {
    38             box () {
    39                 alert('div')
    40             },
    41             links () {
    42                 alert('baidu.com')
    43             }
    44         }
    45     })
    46 </script>
    47 </html>
  • 相关阅读:
    团队任务拆解
    团队贡献分分配规则
    使用highcharts绘制美观的燃尽图
    【Alpha】阶段第一次Scrum Meeting
    项目功能规格说明书
    技术规格说明书
    软件工程团队第二次作业
    软工第一次团队作业
    团队作业 # 项目功能规格说明书
    团队作业 #2 —— 项目选择
  • 原文地址:https://www.cnblogs.com/maigy/p/12122242.html
Copyright © 2011-2022 走看看