Web前端之NodeJS、Vue

文章目录

  • 一、Babel转码器
      • 1.1 Babel安装流程
      • 1.2 Babel命令行转码
  • 二、Promise对象
  • 三、测试方式
  • 四、Vue(渐进式JS框架)
      • 4.1 准备
      • 4.2 创建一个项目
      • 4.3 运行一个项目
  • 五、模板语法
      • 5.1 文本
      • 5.2 原始html
      • 5.3 属性Attribute
      • 5.4 使用JavaScript表达式
  • 六、条件渲染
      • 6.1 v-if
      • 6.2 v-else
      • 6.3 v-show
  • 七、事件处理
      • 7.1 v-on指令
      • 7.2 事件处理方法
      • 7.3 内联处理器中的方法,可以直接叫他事件传递参数
  • 八、表单输入绑定
      • 8.1 修饰符 .lazy
      • 8.2 .trim
  • 九、组件基础
      • 9.1 单文件组件
      • 9.2 加载组件


一、Babel转码器

Babel 是一个广泛使用的 ES6 转码器,可以将 ES 代码转为 ES5 代码,从而在老版本的浏览器执行。这意味着,你可以用 ES6的方式编写程序,又不用担心现有环境是否支持。
转码实例

//转码前
input.map(item=>item+1);
//转码后
input.map(function(item){
	return item+1;
	});

1.1 Babel安装流程

第一步

npm install --save-dev @babel/core

第二步,配置文件.babelrc
Babel的配置文件是.babelrc,存放在项目的根目录下。使用Babel的第一步,就是配置这个文件。该文件用来设置转码规则和插件,基本格式下:

{
	"presets": [],
	"plugins": []
}

第三步,转码规则
presets字段设定转码规则,

npm install --save-dev @babel/preset-env

第四步,将规则加入.babelrc

{
	"presets": [
		"@babel/env"],
	"plugins": []
}

1.2 Babel命令行转码

Babel提供命令行工具@babel/cli,用于命令行转码

npm install --save-dev @babel/cli

基本用法如下

转码结果写入一个文件
–out-file或-o参数指定输出文件
$ npx babel|example.js --out-file compiled.js
或者
npx babel example.js -o compiled.js

整个目录转码
–out-diir或-d 参数指定输出目录
$npx babel src --out-dir lib
或者
$ npx babel src -d lib

二、Promise对象

它是一个对象,它可以获取异步操作的消息,提供统一的API,各种异步操作都可以用同样的方法处理。

基本用法

const promise =new Promise(function(resolve,reject){
	//some code
	if(/*异步操作*/)
		resolve(value);
		}
		else{
		reject(error);
		}
});

Promise 构造函数接受个函数作为参数,该函数的两个参数分别是 resolve 和 reject 。它们是两个函数,由avaScript 引擎提供,不用自己部署
Promise 实例生成以后,可以用 then 方法分别指定resolved 状态和 rejected 状态的回调函数

promise.then(function(value){
	//success
},function(error){
	//failure
	});

三、测试方式

第一步:全局安装npm install -g babel-cli
第二步:安装babel-preset-env npm install -D babel-preset-env
第三步:运行代码 babel-node --presets env index.js

四、Vue(渐进式JS框架)

4.1 准备

Vue cLI Vue.is 开发的标准工具,,Vue cLI 是一个基于 Vue.is 进行快速开发的完整系统

npm install -g @vue/cli

安装之后,可以在 命令行中访问vue命令。验证是否安装成功。

vue --version

4.2 创建一个项目

vue create vue-demo

注意
vue-demo不准大写,必须小写

进入文件后,右键,出现下图
在这里插入图片描述

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

4.3 运行一个项目

第一步:进入项目根目录 cd vue-demo
第二步:运行npm run serve启动项目

五、模板语法

assets存放静态资源图片。
components存放组件文件。

5.1 文本

数据绑定最常见的形式就是使用“{{}}”语法的文本插值

<span>Message:{{ msg }}</span>

一般配合js中的data()设置数据

export default{
	name: "Helloworld",
	data(){
		return {
			msg:"消息提示"
				}
			}
		}	

5.2 原始html

双大括号会将数据解释为普通文本,而非html代码,为了输出真正的html,需要用v-html指令。

<P>Using mustaches: {{ rawHtml }} </p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
data(){
	return{
		rawHtml:"<a href='https://www.klyingshi.com'>影视</a>"
		}
	}

5.3 属性Attribute

Mustache语法不能在HTML属性中使用,然而,可以用v-bind指令

<div v-bind:id="dynamicId"></div>
data(){
	return{
		dynamicId:1001
		}
	}

5.4 使用JavaScript表达式

在模板中,一直都只绑定简单的【人品【erty键值,Vue.js都提供了完全的JS表达式

{{ number + 1 }
{{ ok ? 'yes' : 'no' }}
{{ message.split(' ').reverse().join('') }}

这个表达式会在当前活动实例的数据作用域下作为JS被解析,每个绑定都只能包含单个表达式,所以下面的例子不会生效

<!-- 这是语句,不是表达式 -->
{{ var a=1 }}

<!-- 流程控制也不会生效,请使用三元表达式-->
{{ if(ok) {return message} }}

六、条件渲染

6.1 v-if

v-if指令用于条件性地渲染一块内容,这块儿内容只会在指令地表达式返回true值得时候被渲染。

<p v-if='flag'>尝试一下</p>
data(){
	return{
		flag:true
		}
	}

6.2 v-else

用此指令表示v-if的else块

<p v-if="flag">这是第一个</p>
<p v-else>这是第二个</p>
data(){
	return {
		flag:false
		}
	}

6.3 v-show

展示元素

<h1 v-show="ok" >Hello</h1>

七、事件处理

7.1 v-on指令

(通常缩写为@符号)来监听DOM事件,并在触发事件时执行一些JS,用法为v-on:click="methodName"或使用快捷方式@click="methodName"

<button @click="counter +=1">Add 1</button>
data(){
	return{
		counter: 0
		}
	}

7.2 事件处理方法

<button @click="greet">Greet</button>
methods:{
	greet(event){
		if(event){
			alert(event.target.tagName)
			}
		}
	}

7.3 内联处理器中的方法,可以直接叫他事件传递参数

<button @click="hi">hi</button>
<button @click="what">what</button>
methods:{	
	say(message){
		alert(message)
		}
	}

八、表单输入绑定

可以用 v-model 指令在表单<input><textarea><select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件来更新数据,并在某种极端场景下进行一些特殊处理

<input v-model="message" placeholder="edit me"/>
<p>Message is:{{ message}}</p>

8.1 修饰符 .lazy

在默认情况下,v-model 在每次 input 事件触发后将输入的值与数据进行同步。你可以添加 lazy 修饰符,从而转为在 change 事件之后进行同步

<input v-model.lazy="message"/>
<p>message is {{message}}</p>
data(){
	return {
		message:""
		}
	}	

8.2 .trim

如果要自动过滤用户输入的首尾空白字符,可以给v-model添加trim修饰符

<input v-model.trim="message"/>
data(){
	return{
		message:""
		}
	}	

九、组件基础

9.1 单文件组件

Vue 单文件组件(又名vue 文件,缩写为 SFC)是一种特殊的文件格式,它允许将 Vue 组件的模板、逻辑
与样式封装在单个文件中

<tempIate>
	<h3>单文件组件</h3>
</tempIate>
<script>
export default {
	name:"MyComponent“"
}
</script>
<style scoped>
	h3{
	color: red;
}
</style>

9.2 加载组件

第一步:引入组件import MyComponentVue from '/components/MyComponent.vue'
第二步:挂载组件components: ({MyComponentVue }
第三步:显示组件<my-componentVue />

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

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

相关文章

禁止别人调试自己的前端页面代码

为啥要禁止&#xff1f; 由于前端页面会调用很多接口&#xff0c;有些接口会被别人爬虫分析&#xff0c;破解后获取数据 为了 杜绝 这种情况&#xff0c;最简单的方法就是禁止人家调试自己的前端代码 无限 debugger 前端页面防止调试的方法主要是通过不断 debugger 来疯狂输…

chatGPT应用于房地产行业

作为 2023 年的房地产专业人士&#xff0c;您无疑认识到技术对行业的重大影响。近年来&#xff0c;一项技术进步席卷了世界——人工智能。人工智能彻底改变了房地产业务的各个方面&#xff0c;从简化管理任务到增强客户互动。 在本文中&#xff0c;我们将探讨几种巧妙的人工智…

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数

一、能量谷优化算法EVO 能量谷优化算法&#xff08;Energy valley optimizer&#xff0c;EVO&#xff09;是MahdiAzizi等人于2023年提出的一种新颖的元启发式算法&#xff0c;其灵感来自关于稳定性和不同粒子衰变模式的物理原理。能量谷优化算法&#xff08;Energy valley opt…

spss什么是描述性分析,以及如何去处理。

描述性分析是数据分析的第一步&#xff0c;是了解和认识数据基本特征和结构的方法&#xff0c;只有在完成了描述性统计分析&#xff0c;充分的了解和认识数据特征后&#xff0c;才能更好地开展后续更复杂的数据分析。因此&#xff0c;描述性分析是开展数据分析过程中最基础且必…

Idea添加mybatis的mapper文件模版

针对Java开发人员&#xff0c;各种框架的配置模版的确是需要随时保留一份&#xff0c;在使用的时候&#xff0c;方便复制粘贴&#xff0c;但是也依然不方便&#xff0c;我们可以给开发工具&#xff08;IDE&#xff09;中添加配置模版&#xff0c;这里我介绍下使用idea开发工具&…

高忆管理:今年来尚未有公司递表,香港SPAC市场为何“熄火”?

香港SPAC上市准则敞开之后&#xff0c;从第一家公司上市到现在已经有1年多的时刻。&#xff08;【深度】王石、李宁、卫哲争相发起建立SPAC&#xff0c;香港版“上市盲盒”会火吗&#xff1f; 界面新闻了解到&#xff0c;今年以来&#xff0c;香港SPAC并没有新动态&#xff0c;…

数据链路层 -帧结构

帧结构 802.3 有线网卡的帧格式802.11 无线网卡的帧格式 802是指一个国际标准委员会 IEEE 802 帧头主要包括三个部分&#xff1a; 目标MAC&#xff08;6个字节&#xff09;源MAC &#xff08;6个字节&#xff09;类型 &#xff08;包含两种类型&#xff1a;0x0800【IP协议】 …

麻省理工学院利用水泥和炭黑制造出超级电容器

麻省理工学院的研究人员展示了一种使用低成本水泥和炭黑的制造的超级电容器&#xff0c;这一发明可能会彻底颠覆可再生能源的存储。 ​为了解决太阳能、风能和潮汐能等间歇性和非周期性电源的普及问题&#xff0c;实用并且廉价的电力储存技术一直是重要的环节。MIT的研究人员最…

vue中全局状态存储 pinia和vuex对比 pinia比vuex更香 Pinia数据持久化及数据加密

前言 毕竟尤大佬都推荐使用pinia&#xff0c;支持vue2和vue3&#xff01; 如果熟悉vuex&#xff0c;花个把小时把pinia看一下&#xff0c;就不想用vuex了 支持选项式api和组合式api写法pinia没有mutations&#xff0c;只有&#xff1a;state、getters、actionspinia分模块不…

TartanVO: A Generalizable Learning-based VO 论文阅读

论文信息 题目:TartanVO: A Generalizable Learning-based VO 作者&#xff1a;Wenshan Wang&#xff0c; Yaoyu Hu 来源&#xff1a;ICRL 时间&#xff1a;2021 代码地址&#xff1a;https://github.com/castacks/tartanvo Abstract 我们提出了第一个基于学习的视觉里程计&…

妙盈面试(部分)

算法题1&#xff0c;二分查找即可&#xff1a; git rebase算法题2&#xff0c;求二叉树两结点的最小公共祖先 搞笑的是&#xff0c;第2道算法题我刚开始做&#xff0c;黑屏了两秒钟&#xff0c;当时其实腾讯会议软件已经崩溃了&#xff0c;但是我没注意到而是继续做题。等到做…

Stable Diffusion - 常用的负向提示 Embeddings 解析与 坐姿 (Sitting) 提示词

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132145248 负向 Embeddings 是用于提高 StableDiffusion 生成图像质量的技术&#xff0c;可以避免生成一些不符合预期的图像特征&#xff0c;比如…

推出稳定代码:人工智能辅助编码的新视野

推荐&#xff1a;使用 NSDT场景编辑器 快速助你搭建可二次编辑的3D应用场景 在不断发展的软件开发环境中&#xff0c;对效率和可访问性的追求导致了各种工具和平台的创建。最新的创新之一是StableCode&#xff0c;这是Stability AI的大型语言模型&#xff08;LLM&#xff09;生…

整理mongodb文档:改

个人博客 整理mongodb文档:改 求关注&#xff0c;求批评&#xff0c;求进步 文章概叙 本文主要讲的是mongodb的updateOne以及updateMany&#xff0c;主要还是在shell下进行操作&#xff0c;也讲解下主要的参数upsert以及更新的参数。 数据准备 本次需要准备的数据不是很多…

怎样做接口测试:从入门到精通的指南

怎样做接口测试&#xff1a;从入门到精通的指南 为什么接口测试如此重要&#xff1f; 接口测试在软件开发过程中扮演着关键的角色。它确保不同系统、组件或服务之间的无缝集成和通信。 接口测试的基本概念 接口测试是一种验证软件系统组件之间相互连接的过程。它主要关注数据…

SpringBoot 整合Druid

集成Druid Druid简介 Java程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现&#xff0c;结合了 C3P0、DBCP 等 DB 池的优点&#xff0c;同时加入了日志监控。 D…

【CSS】背景图定位问题适配不同机型

需求 如图, 实现一个带有飘带的渐变背景 其中头像必须显示飘带凹下去那里 , 需要适配不同的机型, 一不下心容易错位 实现 因为飘带背景是版本迭代中更新的, 所以飘带和渐变背景实则两个div 飘带切图如下 , 圆形部分需要契合头像 <view class"box-bg"><…

C++内存管理(new与delete)

这篇文章的主要内容是new与delete的由来&#xff0c;使用new与delete对C堆内存进行管理&#xff0c;(malloc、free)与(new、delete)的区别。希望对C爱好者有所帮助&#xff0c;内容充实且干货&#xff0c;点赞收藏防止找不到&#xff01; 更多C优质内容跳转&#xff1a; 重生之…

百度秋招攻略,百度网申笔试面试详解

百度秋招简介 作为行业巨头&#xff0c;百度向社会提供的岗位一直都是非常吃香的&#xff0c;每年也都有很多考生密切关注&#xff0c;百度发布的招聘广告&#xff0c;以尽可能的让自己进入这家企业工作&#xff0c;实现自己的人生价值。那么百度每年的秋招时间是多久&#xf…

An unexpected error has occurred. Conda has prepared the above report

今日在服务器上创建anaconda虚拟环境的时候&#xff0c;出现了如下报错 An unexpected error has occurred. Conda has prepared the above report 直接上解决方案 在终端中输入如下指令 conda config --show-sources 如果出现以下提示&#xff0c;说明多了一个文件 输入以下…
最新文章