vue3快速入门(局部使用)

目录

前置知识JavaScript-导入导出

 入门操作

变量渲染页面 

局部使用vue的实现步骤

vue指令 

v-for

v-bind 

v-if

v-show

v-on 

v-model 

 生命周期

前置知识JavaScript-导入导出

正常情况在html导入js文件是全部导入,这样会导致性能上的损失 。

JS提供的导入导出机制,可以实现按需导入

 入门操作

变量渲染页面 

 使用vue将变量内容渲染到页面

<!DOCTYPE html>
<html>
<head></head><body><div id="app"><!-- 插值表达式 --><h1>{{msg}}</h1> </div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' //导入vue//创建vue实例createApp({data(){return { msg:"hello vue3"}}}).mount("#app") //链式方法 传入div的id值</script></body></html>

局部使用vue的实现步骤

准备工作 

  • 引入Vue模块
  • 创建Vue的应用实例
  • 定义元素(div),交给Vue控制

构建用户界面

  • 准备数据
  • 用插值表达式渲染 

vue指令 

指令:HTML标签上带有 v-前缀的特殊属性,不同的指令具有不同的含义,可以实现不同的功能。 

v-for

作用:列表渲染,遍历容器的元素或者对象的属性

语法: v-for = "(item,index) in items"

参数说明:

  • items 为遍历的数组
  • item 为遍历出来的元素
  • index 为索引/下标,从0开始 ;可以省略,省略index语法: v-for = "item in items" 

案例实现 

<!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"><table border="1 solid" colspa="0" cellspacing="0"><tr><th>文章标题</th><th>分类</th><th>发表时间</th><th>状态</th><th>操作</th></tr><!-- 哪个元素要出现多次,v-for指令就添加到哪个元素上 --><tr v-for = "(i,index) in articleList"><td>{{i.title}}</td><td>{{i.category}}</td><td>{{i.time}}</td><td>{{i.state}}</td><td><button>编辑</button><button>删除</button></td></tr></table></div><script type="module">//导入vue模块import { createApp } from'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建应用实例createApp({data() {return {//定义数据articleList: [{title: "医疗反腐绝非砍医护收入",category: "时事",time: "2023-09-5",state: "已发布"},{title: "中国男篮缘何一败涂地?",category: "篮球",time: "2023-09-5",state: "草稿"},{title: "华山景区已受大风影响阵风达7-8级,未来24小时将持续",category: "旅游",time: "2023-09-5",state: "已发布"}]}}}).mount("#app")//控制页面元素</script>
</body></html>

        遍历的数组,必须在data中定义; 要想让哪个标签循环展示多次,就在哪个标签上使用 v-for 指令。 

v-bind 

  • 作用:动态为HTML标签绑定属性值,如设置href,src,style样式等。
  • 语法:v-bind:属性名="属性值"
  • 简化语法::属性名="属性值"

用于将变量绑定到标签属性中 

<!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"><a v-bind:href="url">百度</a></div><script type="module">//引入vue模块import { createApp} from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义数据url:"https://www.baidu.com"}}}).mount("#app")//控制html元素</script>
</body>
</html>

 v-bind所绑定的数据,必须在data中定义 。

v-if

v-if

  • 作用:用来控制元素的显示与隐藏
  • 语法:v-if="表达式",表达式值为 true,显示;false,隐藏
  • 其它:可以配合 v-else-if / v-else 进行链式调用条件判断
  • 原理:基于条件判断,来控制创建或移除元素节点(条件渲染)
  • 场景:要么显示,要么不显示,不频繁切换的场景 

<!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">手链价格为:  <span v-if="customer.level >=0 && customer.level<= 9.9">9.9</span>  <span v-else-if="customer.level >9.9 && customer.level<= 19.9">19.9</span> <span v-else="customer.level >19.9">29.9</span></div><script type="module">//导入vue模块import { createApp} from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义消费数据customer:{name:"小王",level:10                    }}}}).mount("#app")//控制html元素</script>
</body>
</html>

v-show

  • 作用:用来控制元素的显示与隐藏
  • 语法:v-show="表达式",表达式值为 true,显示;false,隐藏
  • 原理:基于CSS样式display来控制显示与隐藏
  • 场景:频繁切换显示隐藏的场景 

v-if  与 v-show的区别 

  • v-if 是根据条件判断是创建还是移除元素节点(条件渲染)。
  • v-show 是根据css样式display来控制元素的显示与隐藏 。 

v-if 与 v-show的适用场景

  • v-if 适用于显示与隐藏切换不频繁的场景 。
  • v-show 适用于显示与隐藏切换频繁的场景 。 

v-on 

  • 作用:为html标签绑定事件
  • 语法: v-on:事件名="函数名"
  • 简写为  @事件名="函数名" 
  • 函数需要定义在methods选项内部

createApp({ data(){需要用到的数据}, methods:{需要用到的方法} }) 

<!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"><button v-on:click="ok1">点我</button> &nbsp;<button @click="ok2">再点我</button></div><script type="module">//导入vue模块import { createApp} from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义数据}},methods:{ok1:function(){alert("你很帅")},ok2:function(){alert("我承认,你真的很帅")}}}).mount("#app");//控制html元素</script>
</body>
</html>

v-model 

  • 作用:在表单元素上使用,双向数据绑定。可以方便的 获取 或 设置 表单项数据
  • 语法:v-model="变量名" 
  • v-model 中绑定的变量,必须在data中定义。

给表单元素使用实现双向数据绑定,数据发生变化视图也会跟着变化

<!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">文章分类: <input type="text" v-model="searchconditions.category"/> <span>{{searchconditions.category}}</span>发布状态: <input type="text" v-model="searchconditions.state"/> <span>{{searchconditions.state}}</span><button>搜索</button><button v-on:click="clear">重置</button><br /><br /><table border="1 solid" colspa="0" cellspacing="0"><tr><th>文章标题</th><th>分类</th><th>发表时间</th><th>状态</th><th>操作</th></tr><tr v-for="(article,index) in articleList"><td>{{article.title}}</td><td>{{article.category}}</td><td>{{article.time}}</td><td>{{article.state}}</td><td><button>编辑</button><button>删除</button></td></tr></table></div><script type="module">//导入vue模块import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建vue应用实例createApp({data() {return {//定义数据searchconditions:{category:'',state:''},articleList: [{title: "医疗反腐绝非砍医护收入",category: "时事",time: "2023-09-5",state: "已发布"},{title: "中国男篮缘何一败涂地?",category: "篮球",time: "2023-09-5",state: "草稿"},{title: "华山景区已受大风影响阵风达7-8级,未来24小时将持续",category: "旅游",time: "2023-09-5",state: "已发布"}]}},methods:{clear:function(){//清空category以及state的数据//在methods对应的方法里面,使用this就代表的是vue实例//可以使用this获取到vue实例中准备的数据this.searchconditions.category = ''this.searchconditions.state = ''}}}).mount("#app")//控制html元素</script>
</body></html>

 

 生命周期

  • 生命周期:指一个对象从创建到销毁的整个过程。
  • 生命周期的八个阶段:每个阶段会自动执行一个生命周期方法(钩子), 让开发者有机会在特定的阶段执行自己的代码 
  • 在页面加载完毕时,发起异步请求,加载数据,渲染页面。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】使用Spring常用导入依赖介绍

当使用Spring框架时&#xff0c;以下是常用导入的依赖的详细介绍&#xff0c;按照不同的功能和类别进行分点表示和归纳&#xff1a; 1、核心依赖 Spring Core (spring-core) 功能&#xff1a;提供了Spring框架的基础功能&#xff0c;包括IoC&#xff08;控制反转&#xff09;…

STM32F1之OV7725摄像头·SCCB总线代码编写附带源码详解

STM32F1之OV7725摄像头-CSDN博客 STM32F1之OV7725摄像头像素数据输出时序、FIFO 读写时序以及摄像头的驱动原理详解-CSDN博客 目录 1. 硬件设计 1.1 SCCB 控制相关 1.2 VGA 时序相关 1.3 FIFO 相关 1.4 XCLK 信号 2. 代码设计 2.1 SCCB总线软件实现 2.1.1 宏定…

AI图书推荐:ChatGPT解码—人工智能增强生活指南

《ChatGPT解码—人工智能增强生活指南》&#xff08;ChatGPT Decoded. A Beginners Guide to AI-Enhanced Living &#xff09;是一本由 大卫维恩斯&#xff08;David Wiens &#xff09;所著的书籍&#xff0c;旨在帮助读者了解并有效利用GPT-4语言模型这一强大工具来提升日常…

Date、SimpleDateFormat、Calendar(JDK7以前的时间类)

Date: demo1: package Date;import java.util.Date;public class demo1 {public static void main(String[] args) {//1.创建对象表示一个时间Date d new Date();System.out.println(d);//2.形参是long类型&#xff0c;加LDate d1 new Date(0L);System.out.println(d1);//3…

Vectorbt回测框架

https://zhuanlan.zhihu.com/p/689057801

springmvc Web上下文初始化

Web上下文初始化 web上下文与SerlvetContext的生命周期应该是相同的&#xff0c;springmvc中的web上下文初始化是由ContextLoaderListener来启动的 web上下文初始化流程 在web.xml中配置ContextLoaderListener <listener> <listener-class>org.springframework.…

ncnn 优化量化

问题&#xff1a;发现推理时间过长&#xff0c;需要优化 当前正在做人脸检测部署&#xff0c;发现检测速度有点吓人&#xff0c;以下监测的时间 gpu&#xff1a; cpu&#xff1a; gpu推理大概整体时间200多毫秒&#xff0c;cpu推理时间300多毫秒&#xff0c;这里暂时没去考虑…

「TypeScript系列」TypeScript 对象及对象的使用场景

文章目录 一、TypeScript 对象1. 对象字面量2. 类实例化3. 使用接口定义对象形状4. 使用类型别名定义对象类型5. 使用工厂函数创建对象 二、TypeScript 对象属性及方法1. 对象属性2. 对象方法3. 访问器和修改器&#xff08;Getters 和 Setters&#xff09; 三、TypeScript 对象…

Oracle实践|内置函数之字符串函数

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

Jenkins - Pipeline try catch

Jenkins - Pipeline try catch 引言try catch 引言 Jenkins pipeline 脚本&#xff0c;有时因某些异常而中断执行&#xff0c;导致整个 pipeline job 都失败。为了整个 Job 能继续运行&#xff0c;我们需要处理某些异常。 try catch 当在 Jenkins Pipeline 中使用 try-catch…

基于redis的分布式锁解决token续期冲突的问题

场景&#xff1a;用户登录状态存储到redis&#xff0c;2小时后过期。在过期前的30分钟如果用户进行操作&#xff0c;则对登录状态进行续期&#xff0c;续期后仍有2小时时限&#xff0c;并更换新的token。在微服务模式下&#xff0c;如果两个服务同时请求续期&#xff0c;则会返…

C++模板——函数模板和类模板

目录 泛型编程 函数模板 函数模板概念 函数模板的定义和语法 函数模板的工作原理 函数模板的实例化 隐式实例化 显示实例化 函数模板的匹配原则 类模板 类模板的定义格式 类模板的实例化 泛型编程 什么是泛型编程&#xff1f; 泛型编程&#xff08;Generic Pr…

【代码随想录37期】Day18 找树左下角的值、路径总和、从中序与后序遍历序列构造二叉树

找树左下角的值 class Solution { public:int findBottomLeftValue(TreeNode *root) {TreeNode *node;queue<TreeNode *> q;q.push(root);while (!q.empty()) {node q.front(); q.pop();if (node->right) q.push(node->right);if (node->left) q.push(node-&…

机械臂学习笔记

目录 python 像素坐标系转空间坐标系 基于yolov7得并联机械臂实时抓取 KINOVA Gen3 lite机械臂上 UR5机械臂仿真平台 勤牛智能 Mirobot六自由度机械臂 Python SDK 调用示例 6自由度 c的 彭志辉 开源的&#xff1a; 搜索&#xff1a;机械臂 language:Python python 像…

【Linux-并发与竞争】

Linux-并发与竞争 ■ 原子操作■ 原子操作简介■ 原子整形操作 API 函数■ 原子位操作 API 函数■ 示例一&#xff1a;原子操作实验&#xff0c;使用原子变量来实现对实现设备的互斥访问 ■ 自旋锁■ 自旋锁 API 函数■ 死锁■ 最好的解决死锁方法就是获取锁之前关闭本地中断&a…

LeetCode 124 —— 二叉树中的最大路径和

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 二叉树的问题首先我们要想想是否能用递归来解决&#xff0c;本题也不例外&#xff0c;而递归的关键是找到子问题。 我们首先来看看一棵最简单的树&#xff0c;也就是示例 1。这样的一棵树总共有六条路径&#xf…

docker如何拉取nginx最新镜像并运行

要拉取Docker Hub上的最新Nginx镜像&#xff0c;您可以使用以下命令&#xff1a; docker pull nginx 这个命令会从Docker Hub下载最新版本的Nginx镜像。如果您想要拉取特定版本的Nginx镜像&#xff0c;可以指定版本号&#xff0c;例如&#xff1a; docker pull nginx:1.18.0 拉…

JQuery从入门到精通2万字面试题

目录 解释jQuery库中的$()函数是什么? 如何使用jQuery选择页面上的所有 元素?

详细分析tcping的基本知识以及用法

目录 前言1. 安装配置2. 基本知识3. Demo 前言 针对ping的基本知识推荐阅读&#xff1a;详细分析ping的基本知识以及常见网络故障的诊断&#xff08;图文解析&#xff09; 1. 安装配置 针对Window的下载如下&#xff1a; 安装路径&#xff1a;tcping官网 下载tcping.exe&a…

《微服务王国的守护者:Spring Cloud Dubbo的奇幻冒险》

5. 经典问题与解决方案 5.3 服务追踪与链路监控 在微服务架构的广袤宇宙中&#xff0c;服务间的调用关系错综复杂&#xff0c;如同一张庞大的星系网络。当一个请求穿越这个星系&#xff0c;经过多个服务节点时&#xff0c;如何追踪它的路径&#xff0c;如何监控整个链路的健康…