当前位置: 首页 > news >正文

Vue2 第一次学习

本章为超级浓缩版,文章过于短,方便复习使用哦~

文章目录

    • 1. 简单引入 vue.js
    • 2. 指令
      • 2.1 事件绑定指令 v-on (简写 @)
      • 2.2 内容渲染指令
      • 2.3 双向绑定指令 v-model
      • 2.4 属性绑定指令 v-bind (简写 : )
      • 2.5 条件渲染指令
      • 2.6 循环指令 v-for
    • 3. vue 其他知识
      • 3.1 侦听器 watch
      • 3.2 计算属性 computed
      • 3.3 过滤器 filters
    • 4. axios 基本使用
    • 5. Vue 的组件
      • 5.1 当前文件使用
      • 5.2 全局组件
      • 5.3 自定义属性 props
    • 6. 其他说明

1. 简单引入 vue.js

下载 vue.js : 安装 — Vue.js

<div id="app"><!-- vue 控制的区域 --><!-- 显示数据:{{}} -->{{username}}
</div>
<!-- 导入vue.js -->
<script src="lib/vue.js"></script>
<script>// 创建Vue实例对象var vm = new Vue({// 指定要控制的区域el: '#app',// 要渲染在页面上的数据data: {username: '张三'}})
</script>

2. 指令

2.1 事件绑定指令 v-on (简写 @)

  • .stop - 调用 event.stopPropagation()。
  • .prevent - 调用 event.preventDefault()。
  • .capture - 添加事件侦听器时使用 capture 模式。
  • .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
  • .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
  • .native - 监听组件根元素的原生事件。
  • .once - 只触发一次回调。
  • .left - (2.2.0) 只当点击鼠标左键时触发。
  • .right - (2.2.0) 只当点击鼠标右键时触发。
  • .middle - (2.2.0) 只当点击鼠标中键时触发。
  • .passive - (2.3.0) 以 { passive: true } 模式添加侦听器
<button @click="add(1,$event)">+1</button>
add(n, e) {// 打印数字console.log(n);// 事件: e
},

2.2 内容渲染指令

  • v-text
  • v-html
  • 插值表达式 {{ }}
<p>姓名:{{username}}</p>
<p v-text="cover_text"></p>
<p v-html="red_p"></p>

2.3 双向绑定指令 v-model

<div id="app"><select v-model="city"><option value="">-请选择-</option><option value="1">北京</option><option value="2">上海</option><option value="3">广州</option><option value="4">深圳</option></select>
</div>
let vm = new Vue({el: "#app",data: {city: ""}
});

2.4 属性绑定指令 v-bind (简写 : )

<div id="app"><input type="text" v-bind:placeholder="tipUserName"><input type="text" :placeholder="tipPassword"><div :style="'background-color: ' + color + ';width: 100%;height:100px'">此时背景颜色:{{color}}</div>
</div>
var vm = new Vue({el: "#app",data: {tipUserName: "请输入用户名...",tipPassword: "请输入密码",color: "red"}
});

2.5 条件渲染指令

  • v-if
  • v-else-if
  • v-else
  • v-show

v-if vs v-show

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show较好;如果在运行时条件很少改变,则使用 v-if 较好。

2.6 循环指令 v-for

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

<ul id="example-1"><li v-for="item in items" :key="item.message">{{ item.message }}</li>
</ul>
var example1 = new Vue({el: '#example-1',data: {items: [{ message: 'Foo' },{ message: 'Bar' }]}
})

3. vue 其他知识

3.1 侦听器 watch

<div id="app"><input type="text" class="form-control" v-model="link"><p>{{res}}</p>
</div>
const vm = new Vue({el: "#app",data: {link: "",res: ""},watch: {// link(newVal,oldVal){} 不建议link: {handler(newVal) {if (newVal === "") return;$.get("https://www.escook.cn/api/finduser/" + newVal, (response) => {this.res = response;});},// 页面加载时,就立即执行监听器immediate: true,// deep 对象的一些属性也能监听到deep: true}}
})

3.2 计算属性 computed

<div id="app"><div><label for="rgb">rgb:</label><input type="text" name="rgb" id="rgb" v-model="color"></div><div class="box" :style="{backgroundColor: rgb}"></div><input type="button" value="获取颜色信息" @click="show"></div>
const vm = new Vue({el: "#app",data: {r: 0,g: 0,b: 0,color: "rgb(0, 0, 0)"},computed: {// 计算属性:定义时方法,使用时属性rgb() {// return `reg(${this.r},${this.g},${this.b})`return this.color}},methods: {show() {console.log("颜色:" + this.rgb);}},
});

3.3 过滤器 filters

<div id="app"><input type="text" placeholder="请输入..." v-model="text"><p>{{text | changeText(1)}}</p>
</div>
const vm = new Vue({el: "#app",data: {text: ""},filters: {// 第一个参数永远是管道符前面的值changeText(val, id) {return val + "-----" + id;}}
});

4. axios 基本使用

引入 js 文件

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

调用 axios 函数

axios({method: "get",url: "http://www.liulongbin.top:3006/api/getbooks"
}).then((books) => {this.bookContent = books.data;
});

5. Vue 的组件

该小节是在脚手架中完成的

5.1 当前文件使用

使用组件三大步骤:

  1. 使用 import 语法导入需要的组件

    import Left from '@/components/Left.vue'
    
  2. 使用 components节点注册组件

    export default {components: {Left}
    }
    
  3. 以标签形式去使用刚才注册的组件

    <div class="box"><Left></Left>
    </div>
    

拓展: @ 的 注意事项。一般用来代替src目录。webpack.config.js

module.exports = {resolve: {alias: {@: path.join(__dirname,'./src')}}
}

5.2 全局组件

注意:script标签 中的 components 注册的组件都是私有子组件,只能在该组件中使用。

在 vue 项目的 main.js入口文件中,通过 Vue.component()方法可以注册全局组件。示例代码如下:

// 1. 导入需要全局注册的组件
import Count from '@/components/Count.vue'// 2. 注册组件
// 参数1: 字符串格式,表示"组件名称"
// 参数2: 需要被全局组成的组件(导入的组件)
Vue.component('MyCount',Count)

5.3 自定义属性 props

props 是 “自定义属性” ,允许使用者通过自定义属性,为当前组件指定初始值 【自定义属性的名字,是封装者自定义的且合法的】

具体用法:

Count.vue :

export default {// 自定义属性props: ["init"]// 数据源data() {return {count:0}}
}

在另一个文件 Left.vue 引用

<MyCount init="9"></MyCount>

注意:

  1. props 中的数据,可以 直接在模板结构中使用
<template><div><p>count 的值: {{ init }}</p></div>
</template>
  1. props 是 只读

💖 props 结合 v-bind

  1. :init 是 其中数字 9 是数字
  2. init 是 其中数字 9 是字符串
<template><div class="left-container"><h3>Left 组件</h3><hr />// 使用v-bind 绑定<MyCount :init="9"></MyCount></div>
</template>

💝 props 和 数据源 关联

上面只是简单初始化,但是init 和 数据源中的 count 没有进行绑定 ,故还不完善

<script>export default {// 自定义属性props: ["init"]// 数据源data() {return {// init 和 count 关联起来count:this.init}}}
</script>

💘 props 的 default 默认值

在声明自定义属性时,可以通过 default 来定义 属性的默认值 示例代码如下:

export default {// 自定义属性props: {init: {// 用 default 属性 定义属性的默认值default: 0}}
}

6. 其他说明

Vue 基础语法前面基本已经概况,更多知识请访问官网

介绍 — Vue.js

接下来的学习,就是在脚手架中努力积累经验了。

因为 vue2 比较老、旧,可以采取 vue-cli。

Gitee 代码地址: https://gitee.com/star-dream-f/vue2-study

相关文章:

Vue2 第一次学习

本章为超级浓缩版,文章过于短,方便复习使用哦~ 文章目录 1. 简单引入 vue.js2. 指令2.1 事件绑定指令 v-on (简写 )2.2 内容渲染指令2.3 双向绑定指令 v-model2.4 属性绑定指令 v-bind (简写 : )2.5 条件渲染指令2.6 循环指令 v-for 3. vue 其他知识3.1 侦听器 watch3.2 计算属…...

tiny模式基本原理整合

【Tiny模式】的基本构成 M【首头在首位】 U【/】 V【HTTP/】 Host H【真实ip】 XH \r回车 \n换行 \t制表 \ 空格 一个基本的模式构成 [method] [uri] [version]\r\nHost: [host]\r\n[method] [uri] [version]\r\nHost: [host]\r\n 检测顺序 http M H XH 有些地区 XH H M 我这边…...

使用聚氨酯密封件的好处?

聚氨酯密封件因其优异的耐用性、灵活性和广泛的应用范围而在各个行业中广受欢迎。在本文中&#xff0c;我们将探讨使用聚氨酯密封件的优点&#xff0c;阐明其在许多不同领域广泛使用背后的原因。 1、高性能&#xff1a; 聚氨酯密封件具有出色的性能特征&#xff0c;使其成为各…...

DevEco Studio如何安装中文插件

首先 官网下载中文插件 由于DevEco是基于IntelliJ IDEA Community的&#xff0c;所有Compatibility选择“IntelliJ IDEA Community”&#xff0c;然后下载一个对应最新的就ok了。 最后打开Plugins页面&#xff0c;点击右上角齿轮 -> Install Plugin from Disk…。选择下载的…...

10.2 校招 实习 内推 面经

绿泡*泡&#xff1a; neituijunsir 交流裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 国家电网 国网信通产业集团2024届校园招聘&#xff01; 校招 | 国家电网 国网信通产业集团2024届校园招聘&#xff01; 2、校招 | 海信集团2024届全球校园招聘正式启动&#xff01…...

Golang 语言学习 01 包含如何快速学习一门新语言

Golang方向 区块链 go服务器端 (后台流量支撑程序) 支撑主站后台流量&#xff08;排序&#xff0c;推荐&#xff0c;搜索等&#xff09;&#xff0c;提供负载均衡&#xff0c;cache&#xff0c;容错&#xff0c;按条件分流&#xff0c;统计运行指标 (qps&#xff0c; latenc…...

整理了197个经典SOTA模型,涵盖图像分类、目标检测、推荐系统等13个方向

今天来帮大家回顾一下计算机视觉、自然语言处理等热门研究领域的197个经典SOTA模型&#xff0c;涵盖了图像分类、图像生成、文本分类、强化学习、目标检测、推荐系统、语音识别等13个细分方向。建议大家收藏了慢慢看&#xff0c;下一篇顶会的idea这就来了~ 由于整理的SOTA模型…...

10.4 小任务

目录 QT实现TCP服务器客户端搭建的代码&#xff0c;现象 TCP服务器 .h文件 .cpp文件 现象 TCP客户端 .h文件 .cpp文件 现象 QT实现TCP服务器客户端搭建的代码&#xff0c;现象 TCP服务器 .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #includ…...

AJAX--Express速成

一、基本概念 1、AJAX(Asynchronous JavaScript And XML)&#xff0c;即为异步的JavaScript 和 XML。 2、异步的JavaScript 它可以异步地向服务器发送请求&#xff0c;在等待响应的过程中&#xff0c;不会阻塞当前页面。浏览器可以做自己的事情。直到成功获取响应后&#xf…...

开题报告 PPT 应该怎么做

开题报告 PPT 应该怎么做 1、报告时首先汇报自己的姓名、单位、专业和导师。 2、研究背景&#xff08;2-3张幻灯片&#xff09; 简要阐明所选题目的研究目的及意义。 研究的目的&#xff0c;即研究应达到的目标&#xff0c;通过研究的背景加以说明&#xff08;即你为什么要…...

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一&#xff1a;函数的简介 1&#xff1a;概念和简介 2&#xff1a;创建一个函数对象 3&#xff1a;调用函数对象 4&#xff1a;函数对象的普通功能 5&#xff1a;使用函数声明来创建一个函数对象 6&#xff1a;使用函数声明创建一个匿名函数 一&#xff1a;函…...

当我们做后仿时我们究竟在仿些什么(三)

异步电路之间必须消除毛刺 之前提到过&#xff0c;数字电路后仿的一个主要目的就是动态验证异步电路时序。异步电路的时序是目前STA工具无法覆盖的。 例如异步复位的release是同步事件&#xff0c;其时序是可以靠STA保证的&#xff1b;但是reset是异步事件&#xff0c;它的时序…...

如何将超大文件压缩到最小

1、一个文件目录&#xff0c;查看属性发现这个文件达到了2.50GB&#xff1b; 2、右键此目录选择添加到压缩文件&#xff1b; 3、在弹出的窗口中将压缩文件格式选择为RAR4&#xff0c;压缩方式选择为最好&#xff0c;选择字典大小最大&#xff0c;勾选压缩选项中的创建固实压缩&…...

[C#]C#最简单方法获取GPU显存真实大小

你是否用下面代码获取GPU显存容量&#xff1f; using System.Management; private void getGpuMem() {ManagementClass c new ManagementClass("Win32_VideoController");foreach (ManagementObject o in c.GetInstances()){string gpuTotalMem String.For…...

【数据结构】红黑树(C++实现)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【数据…...

day-64 代码随想录算法训练营(19)图论 part 03

827.最大人工岛 思路一&#xff1a;深度优先遍历 1.深度优先遍历&#xff0c;求出所有岛屿的面积&#xff0c;并且把每个岛屿记上不同标记2.使用 unordered_map 使用键值对&#xff0c;标记&#xff1a;面积&#xff0c;记录岛屿面积3.遍历所有海面&#xff0c;然后进行一次广…...

xss测试步骤总结

文章目录 测试流程1.开启burp2.测试常规xss语句3.观察回显4.测试闭合与绕过Level2Level3Level4Level5Level6Level7 5.xss绕过方法1)测试需观察点2)无过滤法3)">闭合4)单引号闭合事件函数5)双引号闭合事件函数6)引号闭合链接7)大小写绕过8)多写绕过9)unicode编码10)unic…...

2023最新简易ChatGPT3.5小程序全开源源码+全新UI首发+实测可用可二开(带部署教程)

源码简介&#xff1a; 2023最新简易ChatGPT3.5小程序全开源源码全新UI首发&#xff0c;实测可以用&#xff0c;而且可以二次开发。这个是最新ChatGPT智能AI机器人微信小程序源码&#xff0c;同时也带部署教程。 这个全新版本的小界面设计相当漂亮&#xff0c;简单大方&#x…...

【Redis】数据过期策略和数据淘汰策略

数据过期策略和淘汰策略 过期策略 Redis所有的数据结构都可以设置过期时间&#xff0c;时间一到&#xff0c;就会自动删除。 问题&#xff1a;大家都知道&#xff0c;Redis是单线程的&#xff0c;如果同一时间太多key过期&#xff0c;Redis删除的时间也会占用线程的处理时间…...

RPA的优势和劣势是什么,RPA能力边界在哪里?

RPA&#xff0c;即Robotic Process Automation&#xff08;机器人流程自动化&#xff09;&#xff0c;是一种新型的自动化技术&#xff0c;它可以通过软件机器人模拟人类在计算机上执行的操作&#xff0c;从而实现业务流程的自动化。RPA技术的出现&#xff0c;为企业提高效率、…...

Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系

一、什么是云原生&#xff1f; 伴随着云计算的浪潮&#xff0c;云原生概念也应运而生&#xff0c;而且火得一塌糊涂&#xff0c;大家经常说云原生&#xff0c;却很少有人告诉你到底什么是云原生&#xff0c;云原生可以理解为“云”“原生”&#xff0c;Cloud 可以理解为应用程…...

号卡推广管理系统源码/手机流量卡推广网站源码/PHP源码+带后台版本+分销系统

源码简介&#xff1a; 号卡推广管理系统源码/手机流量卡推广网站源码&#xff0c;基于PHP源码&#xff0c;而且它是带后台版本&#xff0c;分销系统。运用全新UI流量卡官网系统源码有后台带文章。 这个流量卡销售网站源码&#xff0c;PHP流量卡分销系统&#xff0c;它可以支持…...

【C语言】汉诺塔 —— 详解

一、介绍 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大焚天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 大焚天命令婆罗门把圆盘从下面开始按…...

【云备份】

文章目录 [toc] 1 :peach:云备份的认识:peach:1.1 :apple:功能了解:apple:1.2 :apple:实现目标:apple:1.3 :apple:服务端程序负责功能:apple:1.4 :apple:服务端功能模块划分:apple:1.5 :apple:客户端程序负责功能:apple:1.6 :apple:客户端功能模块划分:apple: 2 :peach:环境搭建…...

第四十六章 命名空间和数据库 - 系统提供的数据库

文章目录 第四十六章 命名空间和数据库 - 系统提供的数据库系统提供的数据库ENSLIBIRISAUDITIRISLIBIRISLOCALDATAIRISSYS (the system manager’s database 系统管理器的数据库)IRISTEMP 第四十六章 命名空间和数据库 - 系统提供的数据库 系统提供的数据库 IRIS 提供以下数据…...

【贪心的商人】python实现-附ChatGPT解析

1.题目 贪心的商人 知识点:贪心 时间限制:1s 空间限制: 256MB 限定语言:不限 题目描述: 商人经营一家店铺,有number种商品,由于仓库限制 每件商品的最大持有数量是item[index], 每种商品的价格在每天是item_price[item_index][day], 通过对商品的买进和卖出获取利润,请给…...

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器&#xff0c;可以轻易选择你需要的node版本&#xff0c;这对win7平台简直就是超好的福音&#xff1a;可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点&#xff1a;nvm use 版本号以后&#xff0c;并没有生效&#xff0c;nvm …...

2023蓝帽杯半决赛电子取证+CTF部分题解

文章目录 电子取证123456789101112131415 CTFWeb | MyLinuxBotWeb | AirticleShareCrypto | ezrsaPwn | AdminPwn | uafmisc|排排坐吃吃果果 电子取证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CTF Web | MyLinuxBot Web | AirticleShare import requests import times reques…...

OCTA数据集(Rose)+ OCTA-Net

ROSE: A Retinal OCT-Angiography(视网膜眼底相干光层析血管成像术) Vessel Segmentation(血管分割) Dataset and New Model 论文&#xff1a;ROSE: A Retinal OCT-Angiography Vessel Segmentation Dataset and New Model 代码和数据集&#xff1a;ROSE1&2 - 医疗影像/眼…...

java Spring Boot 手动启动热部署

好 接下来 我们讲一个对开发非常重要的东西 热部署 因为 我们在开发过程中总会希望快点看到效果 或者 你的企业项目一般很大很复杂&#xff0c;重启是一件非常麻烦的事 或者你在和前端同事联调&#xff0c;有一点小问题 你改完就要重启 前端还得等你&#xff0c;非常不友好 那…...