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

Vue框架;Vue中的选择和循环结构;Vue数据类型;Vue中的事件和动态属性;Vue子组件通过导入在主组件显示在网页;Vue中主组件向子组件传递数据

一,Vue简介

        前端现在比较火的三大框架就是:vue ,React,Angular。在国内使用最多的还是:

       vue >React >Angular

        Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

        Vue代码分割为三类, HTML、CSS 和 JavaScript,三部分的代码在各自带区域写;

且:Vue是渐进式的JavaScript框架意味着它可以在你现有的应用程序当中去插入,也可以单独的完整的去创建一个拥有vue环境的项目。

 1.0项目src下的结构

registerServiceWorker.js  是一个测试文件。(可以删除,在把对应的引用关系删除掉 import ‘./registerServiceWorker’ 在main.js文件里。)

Main.js 主入口文件 基本上不用动,大部分用来导入文件。

组件化开发:

组件:由三种语法组成,html,css ,js

html部分:

 <template><div></div></template>

js部分:

 <script>export default {}</script>

css部分:

<style type="text/css"></style>

2.0Vue中的选择和循环结构

                                 书写形式和java有差别,但是含义相同

选择结构:

v-if=“条件” 

v-else if

v-else

     <ol><li v-if="boo">起床吃早餐</li><li v-else>出发来上课</li><li>下课来吃饭</li><li>下课吃晚饭</li><li v-show="boo">下课吃夜宵</li></ol>
<!-- 如果boo为真,则“出发来上课” 不显示,反之只显示“出发来上课” -->

循环结构 

<select >该部门下的所有员工<option v-for="(e,i) in names " :key="i">{{ e }}</option><!--  循环 for v-for="(e,i) e是循环值 i是下标 --></select>
<!-- names是含有多个名称的数组 -->

3.0Vue数据类型

  Vue的数据要声明和初始化在Js块中:

<script>
/* 属性加前加: 表示动态属性:属性值为变量*/
export default {name: 'App', /**1.当前页面名字:App 逗号隔开第二个属性 */data(){/**  2.设置当前页面的显示变量*/
/*想将变量反到前端页面,相当于成员变量,变量写入return{}中*/return{  str:"123234",boo:true,boo1:false,username:'',pwd:'',sex:'',menu1:["农业新闻","教育新闻","天气新闻"],/** 数组*/menu2:["国际新闻","军事新闻","体育新闻","民生新闻"],aaa:"http://www.baidu.com/s",names:["ff","nn","tt","张三"],objs:[      /**引用数据类型 */{name:'LiMing',age:20,sex:"男"},{name:'XiaoMei',age:20,sex:"女"},{name:'XiaoFei',age:20,sex:"男"}]}

数据调用在Html块中:

 <template><div><!-- 调用数据问文本时需要{{ }} 双层大括号嵌套使用 --><a v-bind:class="{cla:boo1}" href="aaa">{{ str }}</a><!-- 使用数组 --><select @change="method1">该部门下的所有员工<option v-for="(e,i) in names " :key="i">{{ e }}</option><!--  //循环for v-for="(e,i) e是循环值 i是下标 --></select><table><tr ><td>编号</td><td>姓名</td><td>年龄</td><td>性别</td></tr> <!--循环引用数据类型 v-on 设置事件,值写方法名 或者直接@+事件 无参数可以不写小括号  --><tr v-for="(e,i) in objs" :key="i" v-on:click="show(e.name)"><td>{{i}}</td><td>{{e.name}}</td><td>{{e.age}}</td><td>{{e.sex}}</td></tr></table></div></template>

4.0Vue中的事件和动态属性

动态属性:

<a v-bind:class="{cla:boo1}" href="aaa">{{ str }}</a>
.cla{color:red;font-size: 20px;
}

 v-bind:class="{cla:boo1}"表示动态属性设置:将样式设为动态选择;bool是true则样式显示,反之样式不显示

并且v-bind可以省略简写为:

事件:

  <select @change="method1">该部门下的所有员工<option v-for="(e,i) in names " :key="i">{{ e }}</option><!--  //循环for v-for="(e,i) e是循环值 i是下标 --></select><!-- names是含有多个名称的数组 -->

将方法写在JS块中:

<script>
export default {name: 'App', /**1.当前页面名字:App 逗号隔开第二个属性 */data(){/**  2.设置当前页面的显示变量*/
/*想将变量反到前端页面,相当于成员变量,变量写入return{}中*/return{  },methods:{ /**3 设置事件绑定函数 */method1(){alert("选择了新的选项")}}}
</script>

@change="method1" 是v-on:change=“method1” 时间的简写

v-on:可以简写为@

5.0Vue子组件通过导入在主组件显示在网页

子组件:(子组件名为Menu)

<template><div><ul><!-- <li>4三大4</li><li>555</li><li>666</li> --><li v-for="(e,i) in news" :key="i">{{ e }}</li></ul><input type="button" value="传值" @click="method1"></div>
</template>
<script>
export default {name:"Menu",props:{  //5,接受其他组件传来的数据,props中变量名等于其他组件引用时的属性名news:Array},data(){return{str:"我是Menu组件" }},methods:{method1(){this.$emit("getVal",this.str);//$emit 子组件传递数据给主组件方法:第一个参为对方组件事件名,第二个参数为要传递的数据}}
}
</script>
<style></style>

主组件:

<template><div><Menu ></Menu></div>
</template>
<script>// 导入组件
import Menu from './components/Menu.vue'export default {name: 'App', data(){return{  },methods:{ },components:{Menu}}
</script><style type="text/css"></style>

6.0Vue中主组件向子组件传递数据

主组件:

<template><div><Menu :news="menu1" ></Menu>
<!-- news是自定义的子组件的接收到值后的数组名 --></div>
</template>
<script>
import Menu from './components/Menu.vue'
export default {name: 'App', data(){return{ menu1:["农业新闻","教育新闻","天气新闻"]
//将menu1传入子组件},methods:{ },components:{Menu}}
</script><style type="text/css"></style>

子组件:

<template><div><ul><li v-for="(e,i) in news" :key="i">{{ e }}</li></ul></div>
</template>
<script>
export default {name:"Menu",props:{  //5,接受其他组件传来的数据,props中变量名等于其他组件引用时的属性名 :后为所传数据类型news:Array  },data(){return{}},methods:{}
}
</script>
<style></style>

6.0Vue子组件向父组件传递数据:

子组件:

<template><div><input type="button" value="传值" @click="method1"></div>
</template>
<script>
export default {name:"Menu",props:{  //5,接受其他组件传来的数据,props中变量名等于其他组件引用时的属性名news:Array},data(){return{str:"我是Menu组件" 
//要传递的数据}},methods:{method1(){this.$emit("getVal",this.str);//$emit 子组件传递数据给主组件方法:第一个参为对方组件事件名,第二个参数为要传递的数据}}
}
</script>
<style></style>

主组件:

<template><div><Menu @getVal="getStr"></Menu><!-- getStr是子组件设置的事件名 --></div>
</template>
<script>import Menu from './components/Menu.vue'export default {name: 'App', data(){return{  },methods:{ getStr(str){alert("传递过来的值是"+str)}},components:{Menu}}
</script><style type="text/css"></style>

二.安装node运行环境:

1,下载 

双击运行,一直下一步 完成安装 。

关闭终端命令窗口,在打开 输入npm  显示详细信息,就是运行环境安装成功。

2安装vue/cli 脚手架,一键/自动构建项目结构的工具

使用命令:npm install -g @vue/cli

运行如下:

3,创建Vue项目

在想建项目的文件夹上 直接打Cmd进入终端创建

创建vue项目的命令:vue create vue-demo

vue-demo是项目名

按空格是选中,再按空格就是取消选中

2.X

回车安装。

4.运行项目

进到项目所在的文件夹里,启动运行项目!

Local:地址在浏览器打开得到如下图:        

5.退出运行状态

Ctrl +C

相关文章:

Vue框架;Vue中的选择和循环结构;Vue数据类型;Vue中的事件和动态属性;Vue子组件通过导入在主组件显示在网页;Vue中主组件向子组件传递数据

一&#xff0c;Vue简介 前端现在比较火的三大框架就是&#xff1a;vue &#xff0c;React&#xff0c;Angular。在国内使用最多的还是&#xff1a; vue >React >Angular Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准…...

懒人笔记-opencv4.8.0篇

懒人笔记-opencv4.8.0篇 前言1、卸载 opencv3.4.31.1 cmake1.2 编译过程1.3 卸载1.4 检查代码是否卸载干净 2、安装 opencv4.8.02.1 安装依赖2.2 创建编译目录2.3 设置编译选项2.4 执行编译命令2.5 环境配置2.5.1、环境配置添加库路径2.5.2 更新系统2.5.3 配置bash2.5.4 保存退…...

解决uniapp视频video组件进入全屏再退出全屏后,cover-view失效的问题

给cover-view一个变量如isCloseBtnShow&#xff0c;通过v-if&#xff08;不要用v-show&#xff09;来控制显示隐藏。监听video全屏事件&#xff0c;全屏时&#xff0c;设置变量为false,退出全屏时再设为true&#xff0c;这样每次退出全屏,cover-view会重新加载。被覆盖的问题就…...

ip属地河北切换北京

我们知道&#xff0c;每当电脑或手机连接网络时&#xff0c;都会分配到一个网络IP地址&#xff0c;这个IP地址通常与设备所在的地区网络相关联。然而&#xff0c;出于业务或个人需求&#xff0c;有时我们需要将本机的IP地址切换到其他城市。例如要将IP属地河北切换北京&#xf…...

fpga入门名词(1)

这是第一代FPGA ,在 FPGA&#xff08;现场可编程门阵列&#xff09;设计中&#xff0c;LCA&#xff08;逻辑单元阵列&#xff09;通常由几个关键组件构成&#xff0c;包括 IOB、CLB 和 Interconnect。以下是这些组件的简要说明&#xff1a; 1. IOB&#xff08;Input/Output B…...

设计模式-行为型模式-访问者模式

访问者模式难以实现&#xff0c;且应用该模式可能会导致代码可读性变差&#xff0c;可维护性变差&#xff0c;除非必要&#xff0c;不建议使用&#xff1b; 1.访问者模式定义 允许在运行时将一个或多个操作应用于一组对象&#xff0c;将操作与对象结构分离&#xff1b; 访问者…...

探索Oracle数据库的多租户特性:架构、优势与实践

在云计算和大数据时代&#xff0c;多租户架构成为数据库设计中的一个重要趋势。Oracle数据库的多租户选项&#xff08;Multitenant&#xff09;允许单个数据库实例支持多个独立数据库&#xff08;称为容器数据库和可插拔数据库&#xff09;&#xff0c;每个数据库都有自己的数据…...

Hack The Box-Sightless

总体思路 CVE-2022-0944->密码破解->chrome调试->PHP-FPM命令执行 信息收集&端口利用 nmap -sSVC sightless.htbStarting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-11 08:40 CST Nmap scan report for sightless.htb Host is up (0.84s latency). Not sh…...

Linux驱动开发-字符设备驱动开发

linux 驱动开发1. 驱动程序的类型2. 驱动开发流程字符设备驱动 1. 基本概念2. 字符设备驱动的基本结构 架构字符设备驱动开发中常用的 API示例以下代码加入了设备类和设备实例的创建 linux 驱动开发 1. 驱动程序的类型 在 Linux 中&#xff0c;驱动程序主要有以下几种类型&am…...

好用的电脑录屏软件有哪些?推荐4款专业工具。

不同系统的电脑上面带有的录屏功能不一样&#xff0c;比如win10上面有Xbox game bar,Mac系统则用的是QuickTime Player&#xff0c;或者是使用快捷键“CommandShift5”。但更方便的&#xff0c;我自己认为是使用一些专业的录屏软件&#xff0c;他门的录制模式多&#xff0c;兼容…...

web基础之XSS

一、搭建XSS平台 安装 1、我这里安装在本地的Phpstudy上&#xff0c;安装过程就是一路下一步&#xff08;可以改安装路径&#xff09;&#xff0c;附上下载链接&#xff1a; # 官网&#xff1a;https://www.xp.cn/download.html# 蓝莲花 - github下载 https://github.com/fi…...

目标检测-小目标检测方法

小目标检测是计算机视觉中的一个挑战性问题&#xff0c;因为小目标往往在图像中占据的像素较少&#xff0c;容易被背景或其他物体干扰。为了有效地进行小目标检测&#xff0c;研究人员和工程师提出了多种方法和算法来提高检测精度。以下是一些针对小目标检测的有效方式和算法&a…...

连接数据库(以MySQL为例)

文章目录 前言一、数据库是什么&#xff1f;二、连接步骤 1.手动导入驱动包2.连接数据库总结 前言 面对应用程序的开发&#xff0c;普遍需要保存用户的海量数据。保存粮的库叫粮库&#xff0c;保存水的库叫水库&#xff0c;那么保存数据的库自然叫数据库。有了数据库&#xff0…...

Mysql高级教程

1.安装部署 安装依赖性&#xff1a; [rootmysql-node10 ~]# dnf install cmake gcc-c openssl-devel ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el7_4.x86_64.rpm rpcgen.x86_64 下载并解压源码包 [rootmysql-node10 ~]# tar zxf mysql-boost-5.7.44.tar.gz [rootmysql-no…...

基于Ubuntu2404搭建mysql8配置远程访问

使用系统为Ubuntu2404&#xff0c;mysql8版本为8.0.36 安装mysql apt install -y mysql-server设置开机自启动 systemctl enable --now mysql修改密码&#xff0c;似乎是bug&#xff0c;修改密码第一次不成功&#xff0c;第二次可以 mysql use mysql; update user set Host…...

前端工程师职业发展路线图

在前端开发领域&#xff0c;从一个新手成长为一名资深工程师需要经过一系列的学习和实践。以下是一份详细的前端工程师职业发展路线图&#xff0c;包括了从基础到高级的各个阶段。 入门阶段 1. 学习基础技术 HTML/HTML5&#xff1a;掌握网页结构和语义化标签的使用。CSS/CSS…...

人工智能(AI)正在以前所未有的速度融入我们生活的方方面面

人工智能将融入我们生活的方方面面 人工智能&#xff08;AI&#xff09;正在以前所未有的速度融入我们生活的方方面面&#xff0c;这种趋势在未来几年乃至几十年内将会持续加速。以下是一些人工智能已经或即将在各个领域产生深远影响的例子&#xff1a; 智能家居&#xff1a;…...

OpenCV-模板匹配多个目标

文章目录 一、基本概念二、基本步骤1.图像准备2.图像预处理3.执行模板匹配4.定位匹配区域5.处理多个匹配6.优化和验证 三、代码实现1.图片读取2.图像预处理3.模板匹配4.绘制矩形框 三、总结 模型匹配&#xff08;Model Matching&#xff09;是一个广泛应用的概念&#xff0c;其…...

uniapp 原生插件开发 UI

前言&#xff1a; 在集成某些特定 原生SDK的时候&#xff0c;它本身是带UI控件的。当我们使用 uniapp 开发app的时候实是 可以使使用 nvue 页面&#xff0c;以 weex 的方式嵌入原生的UI控件。 我这边的场景是 接入连连app的支付&#xff0c;它有个自己的密码键盘 控件是原生的页…...

性能测试-性能分析与调优原理总结

性能分析与调优如何下手&#xff0c;先从硬件开始&#xff0c;还是先从代码或数据库。 从操作系统&#xff08;CPU调度&#xff0c;内存管理&#xff0c;进程调度&#xff0c;磁盘I/O&#xff09;、网络、协议&#xff08;HTTP&#xff0c; TCP/IP &#xff09;&#xff0c;还是…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...