vue前端

2023-05-16

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>测试vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="root">
    <h1>{{ msg }} </h1></br>
    <a v-html:href="url">点我去百度</a>
    <br></br>
    <a v-bind:href="url">点我去百度</a></br>


    自动计数: {{count}}
    </br>
    </br>
    <button onclick="btclick()">点我</button>
</div>


</body>
   <script>
        const HelloVueApp = {
            data() {
                return {
                   msg: '123',
                    url:"http://www.baidu.com",
                    count:0
                }
            },
        //打开页面的时候执行
         mounted(){
                setInterval(() => {
                        this.count++
                    },1000)
         },
        };
        Vue.createApp(HelloVueApp).mount('#root')
    </script>
</html>



在这里插入图片描述
v-text作用与双大花括号作用一样,将数据填充到标签中。但没有闪烁问题!(页面先出来,数据后出来)

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>测试vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
     <style>
        .test {
            width: 200px;
            height: 200px;
            background: orange;
        }
        .active {
            background: greenyellow;
        }
        .test2 {
            width: 200px;
            height: 200px;
            background: #ff90a3;
        }
    </style>
</head>
<body>
<div id="root">
    <h1>{{ msg }} </h1></br>
    <a v-html:href="url">点我去百度</a> <!--此处不显示 '点我去百度'字样,只显示url的地址-->
    <br></br>
    <a v-bind:href="url">点我去百度</a></br>


    自动计数: {{count}}
    </br>
    </br>
    <h1 v-html="msg2"></h1>
    </br>

    点我增加: {{counter}} </br>
    <button type="button"  v-on:click="counter++">点我</button>


    <div class="test" v-bind:class="{active: isActive}"> <!--此处相当于<div class="test active"-->
    </div>
    <button type="button"  v-on:click="btn">增加样式</button>

    <div class="test2" v-bind:style="style">
    </div>
    <button type="button"  v-on:click="btn2">增加样式2</button>
</div>


</body>
   <script>
        const HelloVueApp = {
            data() {
                return {
                    msg: '123',
                    url:"http://www.baidu.com",
                    count:0,
                    msg2:'<span style="color:red">你好</span>',
                    counter:0,
                    style:{
                        background: 'red'
                    }
                }
            },
        //打开页面的时候执行
         mounted(){
                setInterval(() => {
                        this.count++
                    },1000)
         },
         //定义函数的地方
         methods: {
                btn() {
                    if (this.isActive){
                        this.isActive=false
                    }else {
                        this.isActive=true
                    }
                }
         }
        };
        Vue.createApp(HelloVueApp).mount('#root')
    </script>
</html>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>测试vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="root">
    <h1>{{ msg }} </h1>


</div>


</body>
   <script>
        const HelloVueApp = {
            data() {
                return {
                    msg: 'hello vue',
                }
            }
        }

        vm = Vue.createApp(HelloVueApp).mount('#root')
        console.log("===>",vm.msg)
        vm.msg = "hello python"
    </script>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>测试vue</title>
    <script src="./vue.global.js"></script>
</head>
<body>
<div id="myapp">
    <p>{{ count }} </p>

<button  @click="btn">递增</button>
    <p>总分:{{sum}}</p>
</div>


</body>
   <script>
      const hellovue = {
          data() {
            return {
                 count: 1,
                 math:50 ,
                 english:50
              }
          },
      methods: {
                btn() {
                   this.count++
                }
         },
          //计算属性
          computed:{
             sum: function () {
                 return this.math+this.english
             }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>
</html>

在这里插入图片描述


<div id="myapp">
    <p>{{ count }} </p>

    <button  @click="btn">递增</button>
  
    <p>新值:{{newValue}} 旧值:{{oldValue}} </p>
</div>

const h
ellovue = {
          data() {
            return {
                 count: 1,
                 math:50 ,
                 english:50,
                 newValue:0,
                 oldValue:0
              }
          },  watch:{
              count(newValue,oldValue){
                  this.newValue=newValue
                  this.oldValue=oldValue
                  console.log(newValue,oldValue);
              }
          }
      };

在这里插入图片描述

v-if、v-else、v-else-if

示例:判断一个元素是否显示

<body>
<div id="myapp">
    <p v-if="see">看到我了</p>
    <p v-else>看不到我了</p>
</div>


</body>
   <script>
      const hellovue = {
          data() {
            return {
                see:false
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

seen为true
在这里插入图片描述

seen为false
在这里插入图片描述

v-show:另一个用于条件性展示元素的指令,与v-if不同的是,v-show的元素始终会被渲
染并保留再DOM中,所以v-show只是简单地切换元素的display CSS属性

<div id="myapp">
    <p v-if="see">看到我了</p>
    <p v-else>看不到我了</p>

    <p v-show="see">v-show 看到我了</p>
</div>


</body>
   <script>
      const hellovue = {
          data() {
            return {
                see:false
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

在这里插入图片描述
在这里插入图片描述
v-for
可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式
的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。

<div id="myapp">
     <li v-for="(value,index) in myarry" :key="index">{{value}}-{{index}}</li>

    <li v-for="(v,k) in myhost" :key="k">{{k}}-{{v}}</li>

</div>


</body>
   <script>
      const hellovue = {
          data() {
            return {
                see:false,
                myarry:["苹果","香蕉","葡萄"],
                myhost:{
                    host:'主机',
                    displayer: '显示器',
                    keyboard:'键盘'
                }
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数
据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个
元素,并且确保它们在每个索引位置正确渲染。
为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你
需要为每项提供一个唯一的 key 属性:
在这里插入图片描述

@change

</body>
   <script>
      const hellovue = {
          data() {
            return {
                see:false,
                myarry:["苹果","香蕉","葡萄"],
                myhost:{
                    host:'主机',
                    displayer: '显示器',
                    keyboard:'键盘'
                },
                computer:[
                    {id:1,name:'主机1'},
                    {id:2,name:'主机2'},
                    {id:3,name:'主机3'}
                ],
                computerid:''
              }
          },
          methods:{
              select(){
                  this.computerid = event.target.value
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

在这里插入图片描述

事件绑定
Vue常用指令之数据双向绑定
v-model事件双向绑定
双向数据绑定:通过前面学习知道Vue是数据驱动的,数据驱动有一个精髓之处是数据双向绑定,
即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。

 <p>当前选择的主机是:{{computerid}}</p>

    <input type="radio" value="语文"  v-model="msg">语文<br>
    <input type="radio" value="数学"  v-model="msg">数学<br>
    <input type="radio" value="英语"  v-model="msg">英语<br>
    <p>你选择的是:{{msg}}</p><br>

    <select multiple v-model="msg2">  #multiple 多选
        <option  value=""  disabled>请选择<br>
        <option  value="语文" >语文</option>
        <option  value="数学" >数学</option>>
        <option  value="英语" >英语</option>>
    </select>
    <p>你选择的是:{{msg2}}</p>

    <button @click="btn">提交</button>

<script>
      const hellovue = {
          data() {
            return {   
                msg:'',
                msg2:[]
              }
          },
          methods:{           
              btn() {
                  console.log(this.msg)
                  console.log(this.msg2)
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

在这里插入图片描述
登录页面

 <h1>登陆页面</h1>
    登录名:<input type="text" v-model="form.username">
    密  码:<input type="text" v-model="form.passwd">
    <button @click="loginbtn">提交</button>

<script>
      const hellovue = {
          data() {
            return {            
                form:{
                    username:'',
                    passwd:''
                }
              }
          },
          methods:{          
              loginbtn(){
                    console.log(this.form.username)
                    console.log(this.form.passwd)
              }
          }
      };
      vm = Vue.createApp(hellovue).mount('#myapp')
    </script>

指令复习

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue前端 的相关文章

随机推荐

  • RuntimeError: Expected 4-dimensional input for 4-dimensional weight [32, 1, 5, 5]

    文章目录 1 问题引入2 运行报错3 代码4 分析原因5 解决办法6 完整代码7 参考文献 1 问题引入 今天在使用pytorch训练一个模型的 xff0c 数据集的读取是使用pytorch自带的函数来进行读取和预处理的 xff0c 网络使
  • 如何在Linux服务器上安装Anaconda(超详细)

    目录 1 安装Anaconda1 1 下载anaconda的安装包1 2 解决安装出现的bug1 3 安装anaconda1 4 点击Enter xff08 回车键 xff09 1 5 输入 yes1 6 继续点击 Enter1 7 输入
  • Pytorch实现FGSM(Fast Gradient Sign Attack)

    目录 1 相关说明2 相关简述3 代码实现3 1 引入相关包3 2 输入3 3 定义被攻击的模型3 4 定义FGSM攻击函数3 5 测试函数 4 可视化结果5 可视化对抗样本6 预训练模型下载7 训练模型8 完整代码 1 相关说明 最近在整
  • RuntimeError: element 0 of tensors does not require grad and does not have a grad_

    文章目录 1 问题描述2 解决方案2 1 方案12 2 方案2 3 参考文献 1 问题描述 今天在跑代码的过程中 xff0c 因为要训练一个模型然后在测试阶段使用PGD来生成相应的adv image来测试这个模型 xff0c 结果运行到测试
  • Pycharm 搭建 Django 项目 (非常详细)

    目录 1 安装需求2 准备工作2 1 新建项目2 2 输入相关配置2 3 项目创建完成2 4 查看安装 Django 版本2 5 启动项目2 6 解决一点小问题 3 一点小补充4 参考文献 1 安装需求 在使用 python 框架 Djan
  • Docker

    官方网站 xff1a https www docker com Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 xff0c 然后发布到任何流行的 Linux 机器上 xff0c
  • SpringBoot + Thymeleaf 实现发送验证码计时器功能

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 功能需求2 效果图展示3 代码4 参考文献5 联系我 1 功能需求 实现找回密码然后点击获取验证码之后出现XX秒候重新获取
  • 解决 SpringBoot 图片加载失败

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 问题描述2 解决方案2 1 打开 IDEA 3 参考文献 1 问题描述 在使用 SpringBoot 开发项目的时候发现了
  • 仿牛客论坛项目部署总结

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 前言2 部署项目需求3 环境配置3 1 阿里云服务器3 2 本地文件上传到服务器3 3 MySQL配置与安装3 4 Mav
  • 时间片轮转调度算法的计算

    在分时系统中 xff0c 最简单最常用的就是基于时间片轮转调度算法 xff0c 时间片轮转调度算法是非常公平的处理机分配方式 xff0c 让就绪队列的每个进程每次仅运行一个时间片 1 时间片轮转调度算法的基本原理 在时间片轮转调度算法中 x
  • IntelliJ IDEA添加注释常用的快捷键

    IDEA可以使用快捷键添加行注释Ctrl 43 块注释Ctrl 43 Shift 43 xff0c 还可以快速生成类注释 方法注释等 下面就介绍这几种快捷键的用法 1 行注释Ctrl 43 首先你的光标要处于这一行 xff0c 处于这行的哪
  • Android Studio 设置代码提示和代码自动补全快捷键

    想必使用过Eclipse的小伙伴们都习惯Eclipse快捷键带来的方便 但是当我们使用Android studio来进行开发的时候也想要这种方便该怎么办呢 当然使用过Android studio的小伙伴可能已经知道了它的方便以及强大之处 接
  • 编写一个算法,实现一维数组a输入任意n个整数,假设n=7,输入7个数字为3,7,6,8,9,4,1

    问题描述 编写一个算法 xff0c 实现一维数组a输入任意n个整数 xff0c 假设n 61 7 xff0c 输入7个数字为3 7 6 8 9 4 1 xff0c 然后建立一个具有如图所示的方阵 xff0c 并输出打印 1 3 7 6 8
  • 1.0 DS1302-外部RTC

    一 综述 DS1302是美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 xff0c 因为应用非常广泛 xff0c 结果就导致了大量的国产仿制品 xff0c GC1302是一款国产DS1302仿制芯片 xff0c 使用方法
  • 现代C++语言

    include lt iostream gt include lt limits gt include lt future gt include lt string gt include lt map gt using namespace
  • ubuntu 解压 打包 命令全集

    tar 解包 xff1a tar xvf FileName tar 打包 xff1a tar cvf FileName tar DirName xff08 注 xff1a tar是打包 xff0c 不是压缩 xff01 xff09 gz 解
  • 在IDEA中解决进行有关详细信息, 请使用 -Xlint:unchecked 重新编译。

    springboot默认的打包是如下 xff1a lt build gt lt plugins gt lt plugin gt lt groupId gt org springframework boot lt groupId gt lt
  • Jetson Nano更换软件源

    Nano的镜像默认是国外的源 xff0c 速度很慢 xff0c 国内的源有的上不去 xff0c 有的包无法安装 xff0c 经过测试清华大学的源完美可用 xff0c 现放上教程 首先备份原本的source list文件 sudo cp et
  • prometheus在k8s中的部署

    1 k8s的监控指标 监控指标具体实现举例Pod性能cAdvisor容器CPU xff0c 内存利用率Node性能node exporter节点CPU xff0c 内存利用率K8S资源对象kube state metricsPod Depl
  • vue前端

    span class token operator lt span span class token operator span DOCTYPE html span class token operator gt span span cla