ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第167天学习打卡(项目 谷粒商城9 Vue指令)

2021-06-24 22:55:26  阅读:207  来源: 互联网

标签:el Vue app num 167 new 打卡 Document


Vue 指令

v-text v-html.html

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
        {{msg}} <br/>
         <span v-html="msg"></span>
         <br/>
         <span v-text="msg"></span>
     </div>
     
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el: "#app",
             data:{
                 msg:"<h1>Hello</h1>"
            }
 ​
           
        })
     </script>
 </body>
 </html>

image-20210624193925727

1.差值表达式

image-20210624194724230

image-20210624194812526

image-20210624194844398

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
        {{msg}} {{1+1}} {{hello()}} <br/>
         <span v-html="msg"></span>
         <br/>
         <span v-text="msg"></span>
         
 ​
     </div>
     
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el: "#app",
             data:{
                 msg:"<h1>Hello</h1>"
            },
             methods: {
                 hello(){
                     return "World"
                }
            }
 ​
           
        })
     </script>
 </body>
 </html>

image-20210624200916191

v-bind.html

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <!-- 给html标签的属性绑定 -->
     <div id="app">
         <a v-bind:href="link">gogogo</a>
     </div>
 ​
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 link:"http://www.baidu.com"
            }
        })
     </script>
 ​
 ​
 ​
 ​
 </body>
 </html>

image-20210624201655435

image-20210624201718732

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <!-- 给html标签的属性绑定 -->
     <div id="app">
         <a v-bind:href="link">gogogo</a>
         <!-- class,style -->
         <span v-bind:class="{active:isActive, 'text-danger':hasError}">你好</span>
     </div>
 ​
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let vm = new Vue({
             el:"#app",
             data:{
                 link:"http://www.baidu.com",
                 isActive: true,
                 hasError: true
            }
        })
     </script>
 ​
 ​
 ​
 ​
 </body>
 </html>

 

image-20210624202933900

image-20210624203015446

 

style

image-20210624203458205

image-20210624203512477

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <!-- 给html标签的属性绑定 -->
     <div id="app">
         <a v-bind:href="link">gogogo</a>
         <!-- class,style 动态改class {class名: 加上?}-->
         <span v-bind:class="{active:isActive, 'text-danger':hasError}"
         style="color: crimson; font-size: 90px;">你好</span>
     </div>
 ​
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let vm = new Vue({
             el:"#app",
             data:{
                 link:"http://www.baidu.com",
                 isActive: true,
                 hasError: true
            }
        })
     </script>
 </body>
 </html>

image-20210624204005542

image-20210624204027190

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <!-- 给html标签的属性绑定 -->
     <div id="app">
         <a v-bind:href="link">gogogo</a>
         <!-- class,style 动态改class {class名: 加上?}-->
         <span v-bind:class="{active:isActive, 'text-danger':hasError}"
         v-bind:style="{color: color1, fontSize: size}">你好</span>
     </div>
 ​
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let vm = new Vue({
             el:"#app",
             data:{
                 link:"http://www.baidu.com",
                 isActive: true,
                 hasError: true,
                 color1:'red',
                 size:'30px'
                 
            }
        })
     </script>
 ​
 ​
 ​
 ​
 </body>
 </html>

在控制台动态修改

image-20210624204331134

v-bind可以缩写为:

v-model.html

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
 ​
     <!-- 表单项,自定义组件 -->
     <div id="app">
        精通的语言:
         <input type="checkbox" v-model="language" value="Java">java<br/>
         <input type="checkbox" v-model="language" value="PHP">PHP<br/>
         <input type="checkbox" v-model="language" value="C++">C++<br/>
        选中了
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let vm = new Vue({
             el:"#app",
             data:{
                 language: []
            }
        })
     </script>
     
 ​
 </body>
 </html>

 

image-20210624205402495

image-20210624205822981

 

image-20210624210015229

image-20210624205954595

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
 ​
     <!-- 表单项,自定义组件 -->
     <div id="app">
        精通的语言:
         <input type="checkbox" v-model="language" value="Java">java<br/>
         <input type="checkbox" v-model="language" value="PHP">PHP<br/>
         <input type="checkbox" v-model="language" value="C++">C++<br/>
        选中了{{language.join(",")}}
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let vm = new Vue({
             el:"#app",
             data:{
                 language: []
            }
        })
     </script>
 ​
 </body>
 </html>

v-on

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button v-on:click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;">
            大div
         <div style="border: 1px solid blue;padding: 20px;">
        小div <br/>
         <a href="http://www.baidu.com">去百度</a>
         </div>>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                }
            }
        })
     </script>
     
 </body>
 </html>

image-20210624211529040

image-20210624211558488

v-on可以简写为@

image-20210624211745011

事件修饰符

这里发生了事件冒泡

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button @click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;" v-on:click="hello">
            大div
         <div style="border: 1px solid blue;padding: 20px;" @click="hello">
        小div <br/>
         <a href="http://www.baidu.com">去百度</a>
         </div>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                },
                 hello(){
                     alert("点击了")
                }
            }
        })
     </script>
     
 </body>
 </html>

image-20210624212818592

image-20210624212634754

 

.stop

image-20210624213531752

image-20210624213621003

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button @click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;" v-on:click="hello">
            大div
         <div style="border: 1px solid blue;padding: 20px;" @click.stop="hello">
                  小div <br/>
               <a href="http://www.baidu.com">去百度</a>
         </div>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                },
                 hello(){
                     alert("点击了")
                }
            }
        })
     </script>
     
 ​
 </body>
 </html>

image-20210624213922107

image-20210624213834142

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button @click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;" v-on:click="hello">
            大div
         <div style="border: 1px solid blue;padding: 20px;" @click.stop="hello">
                  小div <br/>
               <a href="http://www.baidu.com" @click.prevent>去百度</a>
         </div>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                },
                 hello(){
                     alert("点击了")
                }
            }
        })
     </script>
     
 ​
 </body>
 </html>

image-20210624214205441

image-20210624214116937

image-20210624214401522

image-20210624214341390

image-20210624214542910

image-20210624214521616

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button @click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;" v-on:click.once="hello">
            大div
         <div style="border: 1px solid blue;padding: 20px;" @click.stop="hello">
                  小div <br/>
               <a href="http://www.baidu.com" @click.prevent.stop="hello">去百度</a>
         </div>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                },
                 hello(){
                     alert("点击了")
                }
            }
        })
     </script>
     
 </body>
 </html>
按键修饰符

image-20210624214709380

image-20210624214822346

image-20210624215258790

image-20210624215120224

组合按钮

image-20210624215402302

image-20210624215424674

image-20210624215617663

image-20210624215559555

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="app">
         <!-- 事件中直接写js片段 -->
         <button v-on:click="num++">点赞</button>
         <!-- 事件指定一个回调函数,必须是Vue实例中定义的函数 -->
         <button @click="cancle">取消</button>
         <!-- -->
         <h1>有 {{num}}个赞</h1>
 ​
         <!-- 事件修饰符 -->
         <div style="border: 1px solid red;padding: 20px;" v-on:click.once="hello">
            大div
         <div style="border: 1px solid blue;padding: 20px;" @click.stop="hello">
                  小div <br/>
               <a href="http://www.baidu.com" @click.prevent.stop="hello">去百度</a>
         </div>
 ​
         </div>
 ​
         <!-- 按键修饰符 -->
         <input type="text" v-model="num" v-on:keyup.up="num+=2" @keyup.down="num-=2" @click.ctrl="num=10"><br/>
 ​
        提示:
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         new Vue({
             el:"#app",
             data:{
                 num: 1
            },
             methods: {
                 cancle(){
                     this.num--
 ​
                },
                 hello(){
                     alert("点击了")
                }
            }
        })
     </script>
     
 </body>
 </html>

v-for.html

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <div id="app">
         <ul>
             <li v-for="user in users">
                 <!-- 1.显示user信息: v-for="item in items" -->
                {{user.name}} ==> {{user.gender}} ==>{{user.age}}
                 <!-- 2.获取数组下标: v-for="(item,index) in items" -->
                 <!-- 3.遍历对象:
                           v-for="value in object"
                           v-for="(value, key) in object"
                           v-for="(value, key, index) in object" -->
                 <!-- 4.遍历的时候都加上:key来区分不同数据,提高vue渲染效率 -->
             </li>
         </ul>
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let app = new Vue({
             el:"#app",
             data: {
                 users: [{name: '肖战', gender: '男', age: 29},
                {name: '王一博', gender: '男', age: 23},
                {name: '蔡徐坤', gender: '男', age:22},
                {name: '杨洋', gender: '男', age:28},
                {name: '吴磊', gender: '男',age:21}]
            },
        })
     </script>
 ​
 ​
 </body>
 </html>

image-20210624221712587

 

image-20210624221945193

image-20210624222003347

image-20210624222524551

image-20210624222427768

image-20210624223202221

image-20210624223459270

image-20210624223405440

image-20210624223430983

image-20210624224100382

 

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     
     <div id="app">
         <ul>
             <li v-for="(user,index) in users" :key="user.name">
                 <!-- 1.显示user信息: v-for="item in items" -->
              当前索引:{{index}} ==> {{user.name}} ==> {{user.gender}} ==>{{user.age}}<br>
                 <!-- 2.获取数组下标: v-for="(item,index) in items" -->
 ​
                 <!-- 3.遍历对象:
                           v-for="value in object"
                           v-for="(value, key) in object"
                           v-for="(value, key, index) in object" -->
                对象信息:
                 <span v-for="(v,k,i) in user">{{k}}=={{v}}=={{i}};</span>
                 <!-- 4.遍历的时候都加上:key来区分不同数据,提高vue渲染效率 -->
             </li>
         </ul>
         <ul>
             <li v-for="(num,index) in nums" :key="index"></li>
         </ul>
 ​
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         let app = new Vue({
             el:"#app",
             data: {
                 users: [{name: '肖战', gender: '男', age: 29},
                {name: '王一博', gender: '男', age: 23},
                {name: '蔡徐坤', gender: '男', age:22},
                {name: '杨洋', gender: '男', age:28},
                {name: '吴磊', gender: '男',age:21}],
                 nums: [1,2,3,4,4]
            },
        })
     </script>
 ​
 ​
 </body>
 </html>

B站学习网址:全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪哔哩哔哩bilibili

 

标签:el,Vue,app,num,167,new,打卡,Document
来源: https://www.cnblogs.com/doudoutj/p/14928940.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有