Vue基本概念、vue-cli和插值表达式的快速使用

news2024/11/16 7:55:48

一、vue基本概念

(一)vue介绍

  • Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式javascript框架

1. 渐进式的概念

  • 渐进式:逐渐增强,可以在项目中使用vue的一部分功能,也可以使用vue的全家桶来管理整个项目。

2. 框架的概念

  • 我们所说的前端框架与库的区别?

①、Library

  • 代表:moment axios

  • 库,本质上是一些函数的集合。每次调用函数,实现一个特定的功能 工具箱

  • 使用库的时候,把库当成工具使用,需要自己控制代码的执行逻辑。

②、Framework

  • 代表:vue、angular、react、bootstrap

  • 框架,是一套完整的解决方案

  • 使用框架的时候,框架实现了大部分的功能,我们只需要按照框架的规则写代码

③、库和框架的区别

  • 使用库的时候,很自由,只要调用库提供的各种各样的方法就行,也可以不用其他的一些方法
  • 使用框架的时候,需要按照框架的规则写代码,限制会非常多,但同时框架的功能也很强大,可以极大的提升开发的效率。

3. vue是 MVVM 的框架

  • MVVM思想:一种软件架构模式,决定了写代码的方式。

    • M:model数据模型(ajax获取到的数据)
    • V:view视图(页面)
    • VM:ViewModel 视图模型
  • MVVM通过数据双向绑定让数据自动地双向同步 不在需要操作DOM

    • V(修改视图) -> M(数据自动同步)
    • M(修改数据) -> V(视图自动同步)
  • 之前的思想,原生dom驱动。无论修改什么页面内容,先找对象,操作dom。

  • 现在的思想,vue 数据驱动直接操作数据即可。数据变化,试图自动更新。

  • 1. 在vue中,不推荐直接手动操作DOM!!!

  • 2. 在vue中,通过数据驱动视图,不要在想着怎么操作DOM,而是想着如何操作数据!!

(二)开发vue的方式

  • 开发vue有两种方式
    ①、传统开发模式:基于html/css/js文件开发vue
    ②、工程化开发方式:在webpack环境中开发vue,这是最推荐的方式。
  • 现代化的项目也都是在webpack环境下进行开发的。

二、vue-cli的使用

vue-cli也叫vue脚手架,vue-cli是vue官方提供的一个全局命令工具,这个命令可以帮助我们快速的创建一个vue项目的基础架子。

  • 开箱即用
  • 零配置
  • webpack、babel

(一)基本使用

//查看镜像源使用状态:
npm get registry
//全局切换镜像源:
npm config set registry http://registry.npm.taobao.org
//全局切换官方镜像源
npm config set registry https://registry.npmjs.org/
  • 全局安装命令
npm install -g @vue/cli
# OR
yarn global add @vue/cli
  • 查看版本vue
vue --version
  • 初始化一个vue项目
vue create 项目名(不能用中文)
  • 启动项目,打包项目
npm run serve
npm run build

yarn serve
yarn build

(二)如何覆盖webpack配置

注意:我们在项目无法找到webpack.config.js文件,因为vue把它隐藏。

  • 如果需要覆盖webpack的配置,可以修改vue.config.js文件,覆盖webpack配置文件
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  // 配置端口号
  devServer: {
    port: 81
  }
})

(三)目录分析与清理

在这里插入图片描述

  • public/index.html:不用动,提供一个最基础的页面,运行的浏览器网页。
  • src/main.js:不用动, 渲染了App.vue组件,webpack打包的入口。
  • src/App.vue:默认有很多的内容,可以全部删除,vue页面入口。
  • assets文件夹与components直接删除
  • package.json:依赖包列表文件。

(四)单文件组件:一个.vue文件就是一个组件

  • vue单文件组件的说明:一个.vue文件就是一个组件,后续开发vue,所有的功能都是基于组件实现。

1.安装插件

在这里插入图片描述

2.一个单文件组件由三部分构成

  • template(必须) 影响组件渲染的结构,html只能有一个根元素
  • script 逻辑 js
  • style 样式 css less scss
    • style用于提供组件的样式,默认只能用css
    • 可以通过lang="less"开启less的功能,需要安装依赖包

3.让组件支持less

  • (1) style标签, lang=“less”,开启less功能
  • (2) 装包:
yarn add less-loader@7.2.1 less -D
  • 然后重新运行一下App.vue页面的代码。
<template>
  <div id="app">
   <h1>App.vue 最根组件,里面有HTML JS代码  CSS样式</h1>
  </div>
</template>

<style lang="less">
/* 常规:写CSS样式! */
#app {
  background-color: pink;
  h1 {
    color:green;
  }
}
</style>

在这里插入图片描述

  • 假如我们添加下面的代码,那么就会报错。
<script>
	let a =10
</script>

在这里插入图片描述

  • 于是我们就需要在vue.config.js里面进行设置,消除lint,方便我们之后的开发
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    port: 81,//发开服务端口号
  },
  lintOnSave:false,//在此处添加
})

三、vue的插值表达式

(一)vue是数据驱动的,应该如何提供数据,将来控制视图呢?

1. vue如何提供数据

  1. 通过 data 属性可以提供数据, data属性必须是一个函数
  2. 这个函数需要返回一个对象,这个对象就代表vue提供的数据

2. vue通过data提供数据

vue中通过template可以提供模板,但是这样的数据是写死的。

  • vue可以通过data提供数据,注意:data必须是一个函数,并且返回一个对象
<script>
export default {
  data () {
    return {
      money: 100,
      msg: 'hello'
    }
  }    
}
</script>

3. 通过插值表达式显示数据

  • 插值表达式, 小胡子语法 mustach语法 {{ }}
  1. 作用: 使用 data 中的数据渲染视图(模板)
  2. 基本语法, 支持三元运算符
{{ msg }}
{{ obj.name }}
{{ msg.toUpperCase() }}
{{ obj.age > 18 ? '成年' : '未成年' }}
  1. vue中插值表达式的注意点
  • (1) 使用的数据在 data 中要存在
<h1>{{ gaga }}</h1>
  • (2) 能使用表达式, 但是不能使用 if for
<h1>{{ if (obj.age > 18 ) { }   }}</h1>
  • (3) 不能在标签属性中使用
<h1 id="box" class="box" title="{{ msg }}"></h1>
<template>
  <!-- 且只有一个根标签:结构要求! -->
  <div id="app">
    <h1>App.vue 最根组件,里面有HTML JS代码  CSS样式</h1>
    <img alt="Vue logo" src="./assets/logo.png">
    <p>  {{info}}  </p>

    <p>{{list[1]}}</p>

    <p>姓名:{{obj.name}}   年龄:{{obj.age}}</p>
    <p>是否成年:{{obj.age>=18?'成年':"未成年"}}</p>
  </div>
</template>

<script>
// 组件内部:script标签默认要求这样写
export default {
  // data固定:内部return
  data(){
    return {  
      // vue语法插值表达式 {{}}    直接把数据渲染到页面内!
      //   1、初始化数据,写在return{内部}
      //   2、放入到展示某个标签内:思想不再操作dom,
      //    注意:模板字符串语法非常像 ES6 `${变量}   ${变量}`
      //         内部可以写简单表达式(三元),不能写语句 if for
      //         {{}} 不能写在标签行内!
      info:"我是字符串,展示数据!",
      list:["张三","李四","王五"],
      obj:{
        name:"炸花生",
        age:19
      }
    }
  }
}
</script>

<style lang="less">
/* 常规:写CSS样式! */
#app {
  background-color: pink;
  h1 {
    color:green;
  }
}
</style>

(二)安装vue开发者工具,方便我们调试

  • 直接通过谷歌应用商店安装 需要梯子
  • 通过极简插件下载插件,本地安装。 https://chrome.zzzmh.cn/index

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

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

相关文章

网络安全实战植入后门程序

在 VMware 上建立两个虚拟机&#xff1a;win7 和 kali。 Kali&#xff1a;它是 Linux 发行版的操作系统&#xff0c;它拥有超过 300 个渗透测试工具&#xff0c;就不用自己再去找安装包&#xff0c;去安装到我们自己的电脑上了&#xff0c;毕竟自己从网上找到&#xff0c;也不…

GitHub 上“千金难求”!啃完这两本书,Spring在你面前便没有秘密

前言 Spring对Java程序员的重要性相信懂的都懂&#xff0c;夸张点甚至可以说是Spring成就了Java。 为什么说要啃这两本书。前者告诉你怎么用Spring&#xff0c;后者给你简单展示如何用的同时&#xff0c;还告诉你Spring是怎么实现的两者一起&#xff0c;让你知其然并知其所以…

在字节打酱油6年,被淘汰?太真实了...

涛子哥普通本科计算机专业毕业&#xff0c;目前在字节&#xff0c;部门是视频云中台。现在比较稳定&#xff0c;生活也算美满&#xff0c;算是个资深的打酱油高手&#xff0c;在字节也有6、7年左右的划水经验了。 刚好划水的时候在某乎上看到了一个问题&#xff1a;“软件测试会…

2023年Q1天猫电脑品类数据分析(含笔记本、游戏本、平板电脑)

目前&#xff0c;PC市场中正经历新旧产品的换代&#xff0c;在各行业消费复苏的背景下&#xff0c;PC市场的整体市场需求也有回暖的可能。结合鲸参谋平台上第一季度的销售数据&#xff0c;我们一起来看一看电脑市场当前的销售表现如何&#xff01; 笔记本电脑 尽管人们的消费需…

SPI FLASH Fatfs文件系统移植

一.FATFS文件系统简介 FATFS是面向小型嵌入式系统的FAT文件系统。他由C语言编写并且独立与底层I/O介质。支持的内核有&#xff1a;8051,PLC,ARV&#xff0c;ARM等。FATFS支持FAT12,FAT16,FAT32等文件系统格式。 官网链接 二.FATFS源码文件结构 diskio.c:包含底层存储介质的操…

linux搭建hadoop集群

linux搭建hadoop集群 1、创建4台虚拟机2、修改主机名3、配置网络4、配置hosts文件5、分配本地网络给虚拟机6、下载jdk&#xff0c;hadoop压缩包7、用xftp传输到虚拟机8、配置jdk9、配置hadoop10、创建脚本shell脚本&#xff0c;方便同步数据11、配置ssh免密登录12、同步jdk和ha…

希尔贝壳参与构建可信人工智能数据空间,助力大模型行业应用落地

2023年5月30日&#xff0c;由中国信息通信研究院、浙江省经济和信息化厅、杭州市人民政府、中国人工智能产业发展联盟主办的杭州通用人工智能发展论坛在未来科技城圆满落幕。本次会议以“大模型应用机遇和挑战”为主题&#xff0c;众多产学研代表现场参会&#xff0c;共同探讨人…

什么是可以文言文字翻译的呢?

大家有没有在日常生活中需要翻译自己不熟的外语呢&#xff1f;有没有觉得使用翻译软件的时候很轻松呢&#xff1f;你们知道文本翻译这个操作吗&#xff1f;它是一项很实用和创新的技术&#xff0c;可以将一种语言自动翻译转换为另一种语言&#xff0c;当然这些一般都是使用计算…

YOLOv5-7.0添加解耦头

Decoupled Head Decoupled Head是由YOLOX提出的用来替代YOLO Head&#xff0c;可以用来提升目标检测的精度。那么为什么解耦头可以提升检测效果呢&#xff1f; 在阅读YOLOX论文时&#xff0c;找到了两篇引用的论文&#xff0c;并加以阅读。 第一篇文献是Song等人在CVPR2020发表…

根据实体excel导入导出百万数据,可修改表头名称

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 表格导入导出实现效果展示根据实体类导出模板读取表格数据导出数据为excel进阶&#xff1a;修改表格导出的列头 controller示例工具类测试实体实体注解maven依赖 表…

基于SpringBoot+微信小程序的医院预约叫号小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 该项目是基于uniappWe…

加密软件VMProtect教程:使用Windows、Net 、UNIX 秘钥生成器

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

VMware虚拟机和主机传输文件

原文链接 虚拟机为Linux系统 使用vm-tools即可。 卸载旧工具&#xff1a; vmware-uninstall-tools.pl安装新工具&#xff1a; apt-get install open-vm-tools-desktop重启系统&#xff1a; reboot此时可以使用CtrlC、CtrlV的方式在主机和Linux虚拟机之间传输文件。 虚拟…

【网络原理】TCP协议如何实现可靠传输(确认应答机制)

&#x1f94a;作者&#xff1a;一只爱打拳的程序猿&#xff0c;Java领域新星创作者&#xff0c;CSDN、阿里云社区优质创作者。 &#x1f93c;专栏收录于&#xff1a;计算机网络原理 本篇主要讲解&#xff1a;TCP协议段格式&#xff0c;TCP的序列号&#xff0c;SYN、ACK标志位&a…

操作系统(王道)

1.1_1_操作系统概念 裸机&#xff08;硬件只听得懂二进制指令&#xff09;——>操作系统&#xff08;属于软件&#xff0c;提供良好交互界面&#xff09;——>应用软件——>用户使用 操作系统是指控制和管理整个计算机系统的硬件和软件资源&#xff0c;并合理地组织…

Python技术自学的方式

Python是一种高级编程语言&#xff0c;被广泛用于软件开发、数据分析、人工智能和科学计算等领域。它于1991年由Guido van Rossum创建&#xff0c;并且其简洁、易读的语法以及丰富的标准库使得它成为了初学者和专业开发人员的首选语言之一。 一、Python技术介绍 学习Python技术…

css响应式布局

这里写自定义目录标题 1.效果展示2.使用grid布局3.使用flex布局 1.效果展示 2.使用grid布局 <!DOCTYPE html> <html><head><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno"…

ASEMI代理安森美MOS管FQL40N50参数,FQL40N50描述

编辑-Z FQL40N50参数描述&#xff1a; 型号&#xff1a;FQL40N50 漏源电压VDSS&#xff1a;500V 漏极电流ID&#xff1a;40A 漏极电流-脉冲IDM&#xff1a;160A 栅极-源极电压VGSS&#xff1a;30V 功耗PD&#xff1a;460W 操作和储存温度范围TJ, TSTG&#xff1a;-55 t…

Rust in Action笔记 第六章 内存

Option<T>类型在Rust中使用了空指针优化&#xff08;null pointer optimization&#xff09;来保证该类型在编译后的二进制文件中占用0个字节。None变量是通过一个空指针null pointer来表示&#xff1b;内存地址、指针、引用的区别&#xff0c;内存地址是指在内存中的一个…

SpringBatch从入门到实战(三):多步骤控制

一&#xff1a;if else案例 案例&#xff1a;如果开始步骤成功了就执行成功步骤&#xff0c;否则执行失败步骤。 // 伪代码 String exitStatus helloWorldJob(); if("FAILED".equals(exitStatus)){failStep(); }else{successStep(); }Configuration public class …