vue模板语法上集->插值,指令,过滤器,计算属性&监听属性,vue购物车

简介: vue模板语法上集->插值,指令,过滤器,计算属性&监听属性,vue购物车
  • 插值
  • 指令
  • 过滤器
  • 计算属性&监听属性
  • vue购物车

1.插值

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>插值</title>
    <style type="text/css">
      .f30{
        font-size: 30px;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <p>文本</p>
      {{msg}}
      <p>html解析</p>
      <p>字体颜色变黄</p>
      <b v-html="msg2"></b>
      <p>字体变黄变大</p>
      <b :class="msg3" v-html="msg2"></b>
      <p>表达式</p>
      {{num+1}}<br />
      {{warn.substr(0,2)}}<br />
      <input v-model="ok"/>
      {{ok==1?'被抓了':'有内鬼'}}
    </div>
    <script type="text/javascript">
      new Vue({
        el:'#app',
        data(){
          return{
            msg:'hello 小兵',
            msg2:'<span style="color:yellow">hello 小兵</span>',
            msg3:'f30',
            num:6,
            warn:'条子来了',
            ok:1
          };
        }
      });
    </script>
  </body>
</html>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>指令</title>
  </head>
  <body>
    <div id="app">
      <p>v-if/v-else-if/v-else</p>
      <input v-model="score"/><br />
      <b v-if="score<60">不及格</b>
      <b v-else-if="score>=60 && score<70">及格</b>
      <b v-else-if="score>=70 && score<80">一般</b>
      <b v-else-if="score>=80 && score<90">良好</b>
      <b v-else="">优秀</b>
      60以下 不及格
      60-70 及格
      70-80 一般
      80-90 良好
      90-100 优秀
      <p>v-show</p>
      v-if与v-show的区别<br />
      <b v-if="isShow">展示</b>
      <b v-show="isShow">展示</b>
      <p>v-for</p>
      <i v-for="a in arr">{{a}}&nbsp;&nbsp;</i>
      <i v-for="i,u in users">&nbsp;&nbsp;{{i}}</i>
      <select>
        <option v-for="h in hobby" :value="h.id">{{h.name}}</option>
      </select>
      <div id="" v-for="h in hobby"     >
        <input type="checkbox" name="hobby"  :value="h.id" />{{h.name}}
      </div>
    </div>
    <script type="text/javascript">
      new Vue({
        el:'#app',
        data(){
          return{
            score:34,
            isShow:false,
            arr:[1,2,3,4],
            users:[{
              name:'ab',id:1
            },{
              name:'ac',id:2
            },{
              name:'ad',id:3
            },{
              name:'ae',id:4
            }],
            hobby:[{
              name:'保健',id:1
            },{
              name:'理发',id:2
            },{
              name:'洗头',id:3
            },{
              name:'养生',id:4
            }]
          };
        }
      });
    </script>
  </body>
</html>

3.过滤器

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
    <script src="date.js" type="text/javascript" charset="utf-8"></script>
    <title>过滤</title>
  </head>
  <body>
    <div id="app">
      <p>局部过滤器基本应用</p>
      {{msg}}<br />
      {{msg | filterA}}
      <p>局部过滤器串行使用</p>
      {{msg}}<br />
      {{msg | filterA | filterB}}
      <p>局部过滤器传参</p>
      {{msg | filterC(3,10)}}<br />
      <p>全局过滤器</p>
      {{time}}<br />
      {{time | fmtDateFilter}}
    </div>
    <script type="text/javascript">
      Vue.filter('fmtDateFilter',function(value){
        return fmtDate(value);
      });
      new Vue({
        el:'#app',
        filters:{
                   'filterA':function(v){
             return v.substring(0,6);
           },
           'filterB':function(v){
               return v.substring(2,5);
            },
           'filterC':function(v,begin,end){
               return v.substring(begin,end);
            }
        },
        data(){
          return{
            msg:'小猪同学,你的好基友被抓了',
            time:new Date()
          };
        }
        ,methods:{
          test(){
            // 单击事件,双击事件
            alert('点我试试!!');
          }
        }
      });
    </script>
  </body>
</html>

4.计算属性&监听属性

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>计算属性监听属性</title>
    </style>
  </head>
  <body>
    <div id="app">
      <p>计算属性</p>
      单价:<input v-model="price"/>
      数量:<input v-model="num"/>
      小计:{{count}}
      <p>监听属性</p>
      千米:<input v-model="km"/><br />
      米:<input v-model="m"/><br />
    </div>
    <script type="text/javascript">
      new Vue({
        el:'#app',
        data(){
          return{
            price:78,
            num:1,
            km:1,
            m:1000
          };
        },
        computed:{
          count:function(){
            return this.price * this.num;
          }
        },
        watch:{
          km:function(v){
            // v指的是被监听的属性,是km
            this.m=parseInt(v) * 1000;
          },
          m:function(v){
            // v指的是被监听的属性,是m
            this.km=parseInt(v) / 1000;
          }
        }
      });
    </script>
  </body>
</html>

5.vue购物车

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>vue购物车</title>
  </head>
  <body>
    <div id="app">
      <div v-if="cart.length==0">
        <p>购物车为空</p>
      </div>
      <!-- //st实体,xb下标 -->
      <div v-else v-for="st,xb in cart" :key="xb">
        <p>名称:{{st.name}}</p>       
        <p>价格:{{st.price}}</p>
        <p>数量:{{st.num}}</p>
        <p>单价:{{st.price * st.num}}</p>
        <button @click="increaseQuantity(xb)">+</button>
        {{st.num}}
          <button @click="decreaseQuantity(xb)">-</button>
        <button @click="removeFramCart(xb)">移除</button>
      </div>
    </div>
    <script type="text/javascript">
      new Vue({
        el:'#app',
        data(){
          return{
            cart:[
              {id:1,name:'香蕉',price:10,num:1},
              {id:2,name:'橘子',price:20,num:1},
              {id:3,name:'西瓜',price:16,num:1},
            ],
          };
        },
        methods:{
          removeFramCart(xb){
              this.cart.splice(xb,1); 
          },
          increaseQuantity(xb) {
              this.cart[xb].num++;
          },
          decreaseQuantity(xb){
            if(this.cart[xb].num > 1){
              this.cart[xb].num--;
            }else{
              removeFramCart(xb);
            }
          },
        },
      });
    </script>
  </body>
</html>

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
2月前
|
JavaScript
vue学习(3)模板语法
vue学习(3)模板语法
63 11
|
2月前
|
JavaScript
Vue3中路由跳转的语法
Vue3中路由跳转的语法
128 58
|
1月前
|
存储 JSON 前端开发
vue尚品汇商城项目-day04【29.加入购物车操作(难点)】
vue尚品汇商城项目-day04【29.加入购物车操作(难点)】
37 0
|
3月前
|
JavaScript 开发工具 容器
初始Vue、Vue模板语法、数据绑定(2022/7/3)
这篇文章是关于Vue.js基础的介绍,包括Vue的简介、安装使用、开发工具、基础知识、模板语法和数据绑定。文中通过代码实例和页面效果展示了如何创建Vue实例、使用插值和指令语法、以及单向和双向数据绑定的方法。
初始Vue、Vue模板语法、数据绑定(2022/7/3)
|
3月前
|
JavaScript
Vue学习之--------Vue中过滤器(filters)的使用(代码实现)(2022/7/18)
这篇文章介绍了Vue中过滤器(filters)的概念、使用方式和代码实现,通过实例演示了如何对显示数据进行格式化处理。
|
JavaScript 前端开发
vue通过监听实现相同路径的视图重新加载
最近在做一个项目,前端菜单路径如下: { path: '/oa/workflow/process/:status', component: sys_workflow_process, ...
1258 0
|
5天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
vue学习第四章
|
5天前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
vue学习第九章(v-model)
|
5天前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
vue学习第十章(组件开发)
|
11天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。