Vue2谷粒商城

1.初始化项目 

npm init -y

2. 安装vue 2

npm install vue@^2

3.编写基本代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h1>{{name}}, 非常帅</h1>
    </div>


    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            el: "#app",
            data: {
                name : "张三"
                
            }
        });
    </script>
</body>
</html>

1.基本语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h1>{{name}}, 非常帅,有{{num}}个人为他点赞</h1>
        <input type="text" v-model = "num">
    </div>


    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
         Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
        let vm = new Vue({
            el: "#app",
            data: {
                name : "张三",
                num: 15
                
            }
        });
        //2.双向绑定    模型变换,试图变化


    </script>
</body>
</html>

事件处理

v-xx 指令

2. v-text /v-html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="node_modules/vue/dist/vue.js"></script>
    <script>
          Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
    </script>
</head>
<body>
    <div id="root" >
           {{msg}}
           <span v-html="msg"></span>
           <span v-text="msg"></span>
    </div>
    <script>
        
        const app = new Vue({
          el: '#root',
          data: {
                msg :"<h1>Hello</h1>"

          },
          methods:{

          }
    
        });
    </script>
</body>
</html>

3.v-bind 绑定属性用的

给html标签的属性绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
          Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
    </script>
</head>
<body>
    <div id="root">
            <a v-bind:href="link">gogogo</a>
            <span v-bind:class="{active:isActive,'text-danger':hasError}">你好</span>
    </div>
    <script>
        
        const app = new Vue({
          el: '#root',
          data: {
           link:"http://www.baidu.com",
           isActive:true,
           hasError:true

          },
          methods:{

          }
    
        });
    </script>
</body>
</html>

4.v-model 双向绑定

默认会

5.v-on

 

6. v-for

 7.v-if

8.v-show

区别就是, if是不渲染dom树 而 show 是只是修改了diplay样式改成 none隐藏了而已实际还在dom树里

9.计算属性 和 watch 侦听器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="node_modules/vue/dist/vue.js"></script>
    <script>
        Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
    </script>
</head>

<body>
    <div id="root">
        <!-- 某些结果是基于之前数据实时计算出来的,我们可以利用计算属性。来完成 -->
        <ul>
            <li>西游记; 价格:{{xyjPrice}} ,数量:<input type="number" v-model="xyjNum"></li>
            <li>水浒传; 价格:{{shzPrice}} ,数量:<input type="number" v-model="shzNum"></li>
            <li>总价格:{{totalPrice}}</li>
            <span v-show="s">{{msg}}</span>
        </ul>
    </div>
    <script>
            // watch 可以让我们监控一个值的变化。从而做出相应的反应
        const app = new Vue({
            el: '#root',
            data: {
                xyjPrice: 99.98,
                shzPrice: 98.12,
                xyjNum: 0,
                shzNum: 0,
                msg:"",
                s:false

            },
            methods: {

            },
            computed: {
                totalPrice() {
                    console.log("执行了计算属性");
                    return this.xyjPrice * this.xyjNum + this.shzPrice * this.shzNum
                }
            },
            watch:{
                xyjNum(newVal,oldVal){
                    console.log(`newVal : ${newVal}  ; oldVal : ${oldVal}`);
                    if(newVal>3){
                        this.s =true
                        this.msg = "输入的商品数量不能超过3";
                    }else{
                        this.s =false
                    }
                }
            }

        });
    </script>
</body>

</html>

10. 过滤器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="node_modules/vue/dist/vue.js"></script>
    <script>
        Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
    </script>
</head>

<body>
    <div id="root">
        <ul>
            <li v-for="user in userList">
                {{user.id}} ==> {{user.name}} ==> {{user.gender==1?"男":"女"}}
                 ==> {{user.gender | genderFilter}}
                 ==> {{genderF(user.gender)}}
                 ==> {{user.gender | genFilter}}
            </li>
        </ul>
    </div>
    <script>

            Vue.filter("genFilter", function(val){
                return  val==1?"男~~~":"女~~~"
            })

        const app = new Vue({
            el: '#root',
            data: {
                userList: [
                    { id: 1, name: 'jacky', gender: 1 },
                    { id: 2, name: 'peter', gender: 0 },
                ]

            },
            methods: {
                genderF(g){
                    return  g==1?"男":"女"
                }
            },
            filters:{
                //filters 定义局部过滤器,只可以在当前vue实例中使用
                genderFilter(val){
                 return  val==1?"男":"女"
                }    

            }

        });
    </script>
</body>

</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/485540.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建以太网交换网络——(生成树实验)

实验介绍 关于本实验 以太网交换网络中为了进行链路备份&#xff0c;提高网络可靠性&#xff0c;通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路&#xff0c;引发广播风暴以及MAC地址表不稳定等故障现象&#xff0c;从而导致用户通信质量较差&#xff0c;甚至…

PB 级速度,单一数据库操作:走进 Amazon Aurora Limitless Database 的神奇

在数字时代的浪潮中&#xff0c;数据库管理面临着前所未有的挑战和复杂性。对于许多应用程序开发者而言&#xff0c;维护数据库、确保一致性保证、执行升级和备份等日常操作变得越来越复杂。随着应用程序规模的不断扩大&#xff0c;这些任务可能变得琐碎而繁重。传统的数据库管…

前端Webpack5高级进阶课程

课程介绍 本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等&#xff0c;让你开发时选择更多样&#xff0c;最后&#xff0c;用不到一百行的代码实现Webpack打包。通过本套视频教程的学习&#xff0c;可以帮你彻底打通Webpack的任…

美团2024届秋招笔试第二场编程真题

要么是以0开头 要么以1开头 选择最小的答案累加 import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和…

计算机网络⑦ —— 网络层协议

1. ARP协议 在传输⼀个 IP 数据报的时候&#xff0c;确定了源 IP 地址和⽬标 IP 地址后&#xff0c;就会通过主机路由表确定 IP 数据包下⼀跳。然⽽&#xff0c;⽹络层的下⼀层是数据链路层&#xff0c;所以我们还要知道下⼀跳的 MAC 地址。由于主机的路由表中可以找到下⼀跳的…

多模态检索增强生成的简单介绍

原文地址&#xff1a;An Easy Introduction to Multimodal Retrieval Augmented Generation 2024 年 3 月 20 日 如果检索增强生成(RAG) 应用程序可以处理多种数据类型&#xff08;表格、图形、图表和图表&#xff09;而不仅仅是文本&#xff0c;那么它的实用性就会呈指数级…

2023年全国职业院校技能大赛(网络系统管理赛项)样题三

2023****年全国职业院校技能大赛 GZ073****网络系统管理赛项 赛题第3套 模块A&#xff1a;网络构建 ​ 目 录 任务清单… 1 &#xff08;一&#xff09;基础配置… 1 &#xff08;二&#xff09;有线网络配置… 1 &#xff08;三&#xff09;无线网络配置… 3 &#…

华为OD七日集训第4期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、七日集训第 3 期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、逻辑分析第2天、字符串处理第3天、矩阵第4天、深度优先搜索dfs算法第5天、回溯法第6天、二分查找第7天、正则表达式 大家好&#xff0c;我是…

5个适用于 Windows/PC 的水印去除软件(视频/图像)

水印是文本、徽标、印记、图像或签名&#xff0c;通常叠加在视频、其他图像或具有较高透明度的 PDF 文档上。当您免费使用某些产品&#xff08;例如视频编辑器&#xff09;时&#xff0c;最终输出通常带有代表您使用的编辑器的水印。您可能需要出于您的目的从此类媒体文件中删除…

继承和多态(1)(继承部分)

继承 继承的概念 上文就是继承的概念。 必须记住父类也可以称为基类&#xff0c;超类。 子类也可以称为派生类。 继承的语法 在Java中如果要表示类之间的继承关系&#xff0c;需要借助extends关键字&#xff0c;具体如下&#xff1a; 修饰符 class 子类 extends 父类 {//…

德邦物流上门取件,寄重货和大件物品时,实际费用比预估的要贵,难道被坑了吗?

实际并不是哈&#xff01;温馨提示&#xff1a;快递物流计费标准&#xff1a;实际体积和重量两者取最大值&#xff0c;哪个大按哪个计费。 体积重量&#xff08;kg&#xff09;换算公式长(cm) x宽(cm)x高(cm) 抛比系数如果邮寄一个长100cm、宽58cm、高60cm的纸箱。 寄德邦快递…

Spring Cloud五:Spring Cloud与持续集成/持续部署(CI/CD)

Spring Cloud一&#xff1a;Spring Cloud 简介 Spring Cloud二&#xff1a;核心组件解析 Spring Cloud三&#xff1a;API网关深入探索与实战应用 Spring Cloud四&#xff1a;微服务治理与安全 文章目录 一、Spring Cloud在CI/CD中的角色1. 服务注册与发现&#xff1a;自动化管理…

Android14之模板类StaticString16解析(二百零一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(四)

概览 从上一篇博文: Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(三)我们学到了 Swift 中完全自己撸码实现 SwiftHook 类似功能的基本思路、提出了两个“难关”,并首先解决了其中第一道难题。 在这一篇中,我们将会继续克服各种“艰难险阻”,…

绝地求生:PUBG七周年庆典开启!参与周年话题投稿赢丰厚奖励

为庆祝七周年&#xff0c;闲游盒PUBG官方准备了众多活动与奖励&#xff0c;一起在庆典中创造难忘的回忆吧&#xff01;七周年庆典期间游玩PUBG&#xff0c;参与 #乐在7中鸡味无穷# 周年话题投稿&#xff0c;即有机会赢取魔力甜心萨莉套装 2奖励。 参与方式 在小黑盒PUBG社区中…

Conda 常用命令合集

Anaconda是一个开源的Python和R语言的分布式发行版&#xff0c;用于科学计算&#xff08;数据科学、机器学习应用、大规模数据处理和预测分析&#xff09;。Anaconda旨在提供一个简单的一站式解决方案来进行科学计算的需求。它包括了许多用于科学计算、数据分析的最流行的库和工…

【Qt问题】Qt中文乱码问题解决方案(详细汇总)

【Qt问题】Qt中文乱码问题解决方案&#xff08;详细汇总&#xff09; 一、问题描述&#xff1a; 由于Qt对中文的支持不是很好&#xff0c;使用QtCreator进行开发的过程中&#xff0c;经常会出现各种乱七八糟的中文乱码问题&#xff0c;比如我前面遇到的 【Qt问题】初始化菜单…

数据库引论:3、中级SQL

一些更复杂的查询表达 3.1 连接表达式 拼接多张表的几种方式 3.1.1 自然连接 natural join&#xff0c;自动连接在所有共同属性上相同的元组 join… using( A 1 , A 2 , ⋯ A_1,A_2,\cdots A1​,A2​,⋯):使用括号里的属性进行自然连接&#xff0c;除了这些属性之外的共同…

Garnet技术实战测试开发:像使用Redis一样使用Garnet

一、Garnet简介 最近一段时间&#xff0c;看到非常多的文章描述和转发Garnet项目&#xff0c;比如说&#xff1a; .NET的集群Redis实现版本&#xff1a; Garnet – 一种开源、下一代 …Garnet发布 Redis不再是唯一选择 - Setli - 博客园Garnet: 力压Redis的C#高性能分布式存储…

电子电器架构 —— 诊断数据DTC具体故障篇

电子电器架构 —— 诊断数据DTC起始篇 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎…
最新文章