VUE笔记(一)初识vue

news2024/9/22 21:16:34

一、vue的简介

1、什么是vue

官网地址:Vue.js

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

  • 构建用户界面:之前在学习vue之前通过原生js对DOM操作进行构建用户界面的

使用原生js构建用户界面的不足
- 没有规范,统一性不强,不利于团结写作开发
- 大量的DOM操作,开发效率很低
- 没有性能优化
  • 渐进式:声明式渲染+组件系统(vue的核心)+客户端路由+状态机+工具链等部分组成

渐进式:你可以在自己的项目只使用vue的一部分内容,不需要全部使用,这个vue不强制
       随着项目的变大,大家可以将页面中公共部分封装成组件,然后调用组件,这样可以提高开发效率
       在随着项目的变大,需要客户端路由+状态机
  • 框架:框架是应用程序的半成品,框架内已经将公共的部分完成了,程序使用框架的好处

    • 快速的提高开发效率

    • 程序员不用关注非核心内容,只关注业务本身

    • 框架规范行为,让代码统一性变得更强

2、特点

优点

  • 声明式编程,不需要程序员编写大量的DOM就能够完成页面的构建

  • 使用组件模式,可以让代码进行复用,增强代码的可维护性

  • 采用虚拟DOM+diff,使得按需更新,不需要构建全部DOM操作

  • vue是一个轻量级的一个框架,相对与其他框架更好容易上手

缺点

  • 首屏加载速度慢

  • VUE的网站不利于SEO优化

3、vue的作者

尤雨溪(Evan You),前端框架 Vue.js 作者,独立开源开发者,现居美国新泽西。曾就职于 Google Creative Labs 和 Meteor Development Group。由于工作中大量接触开源的 Java 项目,最后自己也走上了开源之路,现在全职开发和维护 Vue.js

4、vue版本情况

  • 2013年Evan You收到了Anglur启发,开发出来了Seed,后来在同年12月份,将Seed改名为vue,当时的版本是0.6.0

  • 2014年正式对外开放,版本是0.8.0

  • 2015年12月份,vue1.0版本出现

  • 2016年12月1日,vue2.0版本

  • 2020年9月18日,vue3.0版本出现

二、vue环境的搭建

vue环境的搭建有两种方式,第1种方式:使用script标签的方式引入到网页上,这种方式比较使用学习使用,不太使用实际开发,第2种方式:使用vuecli脚手架方式来进行项目搭建,这种方式比较适合实际企业开发用

1、使用script方式引入

具体的实现步骤有如下

  • 在html页面中通过script标签的方式引入vue.js

 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  • 在body标签之间定义一个div元素,用来作为vue内容渲染的容器

<div id="app"></div>
  • 创建vue实例

 <script>
        /*
            通过new的方式调用构造函数来进行创建vue实例
            Vue的构造函数的参数是一个对象,该对象中的属性
            就是vue的选项,这里边的选项都是固定的
            el:vue挂载目标,这里的值是目标挂载点的选择器
            data:可以是一个对象,也可以是一函数
                对象的属性是自定义的
        */
        const vm=new Vue({
            el:'#app',
            data:{
                message:'Hello Vue!~'
            }
        })
    </script>

data选项的后面也可以是一个函数

 /*
            通过new的方式调用构造函数来进行创建vue实例
            Vue的构造函数的参数是一个对象,该对象中的属性
            就是vue的选项,这里边的选项都是固定的
            el:vue挂载目标,这里的值是目标挂载点的选择器
            data:可以是一个对象,也可以是一函数
                对象的属性是自定义的
        */
        const vm=new Vue({
            el:'#app',
            data:function(){
                return{
                    message:'Hello Vue!!!!!!!'
                }
            }
        })
  • 在HTML页面中渲染vue实例的data数据

如果要渲染vue中的data数据的方式很多,但是最常见的是一个插值表达式(双花括号)

 <div id="app">
      {{message}}
 </div>

2、使用vue/cli命令行工具安装

  • 首先安装vue/cli

npm i -g @vue/cli
  • 创建vue项目

vue create 项目名称
  • 手动安装

Vue CLI v5.0.8
? Please pick a preset:
  Default ([Vue 3] babel, eslint)
  Default ([Vue 2] babel, eslint)
> Manually select features
  • 安装相关依赖包

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection, and
<enter> to proceed)
 (*) Babel
 ( ) TypeScript
 ( ) Progressive Web App (PWA) Support
 ( ) Router
 ( ) Vuex
>(*) CSS Pre-processors
 ( ) Linter / Formatter
 ( ) Unit Testing
 ( ) E2E Testing
  • 选择vue的版本

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, CSS Pre-processors
? Choose a version of Vue.js that you want to start the project with
  3.x
> 2.x
  • 选择css预处理语言

? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, CSS Pre-processors
? Choose a version of Vue.js that you want to start the project with 2.x
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
> Sass/SCSS (with dart-sass)
  Less
  Stylus
  • 选择配置文件

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, CSS Pre-processors
? Choose a version of Vue.js that you want to start the project with 2.x
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS (with dart-sass)
? Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
> In dedicated config files
  In package.json
  • 是否保存预设

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, CSS Pre-processors
? Choose a version of Vue.js that you want to start the project with 2.x
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS (with dart-sass)
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
? Save this as a preset for future projects? (y/N) N
  • 启动项目

npm run serve
  • 运行项目

3、vue/cli图形界面方式

步骤如下

  • 在终端上输入如下命令打开图形界面方式

vue ui

三、目录结构

1、目录结构的分析

project
|- node_modules:第三方依赖包
|- public:存放静态资源的,这里的静态资源不会被webpack编译
	|-favicon.ico:icon图标
	|-index.html:项目index.html文件
|- src:源代码
	|-assets:静态资源,会被webpack所编译
	|-components:自定义组件
	|-App.vue:项目的根组件
	|-main.js:vue项目的入口文件
|-.gitignore:git上传的忽略文件
|-babel.config.js:babel的配置文件
|-jsconfig.js:js的配置文件
|-package.json:项目配置文件
|-vue.config.js:在文件中可以对webpack的配置进行修改

2、vue项目运行流程

项目启动后,首先运行的是main.js

//导入vue第三依赖包
import Vue from 'vue'
//导入根组件
import App from './App.vue'
//关闭生成提示
Vue.config.productionTip = false
//创建vue实例
//vue的选项
//render:vue2的渲染函数
new Vue({
  el:'#app',
  render: h => h(App),
})

注意点:vue2中设置目标挂载点有两种方式

new Vue({
  el:'#app',
  render: h => h(App),
})

还有一种方式

new Vue({
  render: h => h(App),
}).$mount('#app')

3、单文件组件

凡是以后缀.vue结尾的都成称为单文件组件,单文件组件有三个部分组成

  • template:该标签之间存放的HTML代码,用来定义结构的

  • script:编写的js代码

  • style:编写的css代码

<template>
    <h1>Hello <span>{{name}}</span></h1>
</template>

<script>
export default{
    data:function(){
      return{
          name:'Giles'
      }
    }
}
</script>

<style lang="scss">
    h1{
        span{
            color:red
        }
    }
</style>

如上代码,如果要向让其有高亮显示和智能提示需要安装vetur插件

四、打包与部署

开发完的vue项目都必须打包并部署到服务器上

部署vue到nginx服务器上的步骤

  • 在vue.config.js文件中需要配置部署路径,具体配置如下

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath:'./'    
})
  • 在终端上进行打包,具体打包的命令如下

npm run build
  • 将生成dist目录进行重命名,并且上传到到外网服务器(阿里云)

这里我将目录上传到/opt目录下

  • 在/etc/nginx/config.d/default.confi下的server节点下进行如下配置

location /first {
     alias /opt/first;
     index index.html;
 }
  • 执行如下命令

ps aux|grep nginx
killall -9 nginx
  • 重新启动nginx服务器

/usr/sbin/nginx

五、vue.config.js的配置

如果要进行webpack的配置可以在vue.config.js中进行

const { defineConfig } = require('@vue/cli-service')
module.exports =defineConfig({
    //部署应用包时的基本 URL
    publicPath:'./',
    //更改打包后的输出目录名称
    outputDir:'build',
    //设置放静态资源的目录
    assetsDir:'static',
    //指定生成的index.html的输出路径
    indexPath:'home.html',
    //设置devServer的选项
    devServer:{
        //自动打开页面
        open:true,
        host:'127.0.0.1',
        port:'8888'
    }
})

六、插值表达式

1、什么叫插值表达式

vue中的内容如果要动态的渲染到页面之上,可以在<template>部分使用插值表达式动态渲染vue中data选项的数据

2、插值表达式语法

{{插值表达式}}

插值表达内容如下

  • 常量

  • 变量

  • 表达式(运算符+操作数)

<template>
  <!--在vue2template模板中的根元素只能是一个,不能是多个-->
  <div>
    <div>姓名:{{name}}</div>
    <div>年龄:{{38}}</div>
    <div>性别:{{gender==1?'男':'女'}}</div>
    <div>爱好:{{hobby.slice(0,1)}}</div>
    <div>求和:{{nums.reduce((prev,cur)=>prev+cur,0)}}</div>
  </div>
</template>

<script>
export default {
  data(){
    return{
      name:'Giles',
      gender:1,
      hobby:['basketball','football','apple'],
      nums:[10,20,30,59,89,67]
    }
  }
}
</script>

<style>

</style>

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

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

相关文章

mysql sql 执行流程

监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制&#xff0c;以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存

如何开发一款唯一艺术平台 区块链 /数字藏品

艺术作品是人类文化的瑰宝&#xff0c;而艺术平台则是连接艺术家与观众的桥梁。如何开发一款独一无二的艺术平台&#xff0c;既要满足专业艺术作品展示的要求&#xff0c;又要提供深度思考的空间&#xff0c;这是我们所面临的挑战。本文将从专业性、思考深度和逻辑性等多个方面…

几个nlp的小任务(抽取式问答)

几个nlp的小任务(抽取式问答) 安装库抽取式问答介绍、SQuAD数据集初始化参数加载、导入数据集查看数据集示例加载tokenizer对长文本处理的演示对答案的位置进行验证整合刚才的步骤对数据集中的数据进行预处理加载微调模型设置args 参数使用数据清洗设置训练函数,开始训练安装…

浅谈信息论和信息编码

目录 背景 信息是什么 信息度量 小白鼠实验 哈夫曼编码 密码学 其它应用 背景 克劳德艾尔伍德香农&#xff08;Claude Elwood Shannon&#xff09;出生于 1916 年 美国密歇根州。1936 年毕业于密歇根大学&#xff0c;获得数学和电子工程学士学位。之后&#xff0c;他在麻…

将数据类型,类名作为参数传递使用的方法

在开发中遇到一个问题&#xff0c;就是给了很多的数据类型&#xff0c;需要找出当前数据属于哪个数据类型。 举个例子&#xff0c;我们现在有一组数据类型<int, double, float, char, bool>&#xff0c;并给定一个数据char c&#xff1b;需要通过一个函数找出变量c是类型…

fegin实现方法级别注解超时配置

fegin实现方法级别注解超时配置 测试的3.18新版本已经支持方法中参数带有Options 也可以自定义配置, Options options findOptions(argv);; 使用该注解方式需配合AOP使用! 原理是包装自己的client客户端, 替换框架的客户端! 应用到生产环境需自己充验证测试 1.0 注解 Target(…

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品 Banana Pi开源硬件社区是由广东比派科技主导、台湾鸿海科技&#xff08;富士康&#xff09;全面战略支持的开源硬件项目。Banana Pi开源硬件系列开发板&#xff0c;完成核心系统和架构设计。开发文档、软件、硬件…

远程调试环境

一、远程调试 1.安装vscode 2.打开vscode&#xff0c;下载插件Remote-SSH,用于远程连接 3.安装php debug 4.远程连接&#xff0c;连接到远端服务器 注&#xff1a;连接远程成功后&#xff0c;在远程依然要进行安装xdebug&#xff0c;刚才只是在vscode中进行的安装。 5.配置la…

Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

项目场景&#xff1a; 最近因为公司业务需要在搭一个新架构&#xff0c;用的springboot3和jdk17,在整合mybatis多数据源的时候报错 &#xff08;引用的mybatisplus 和 mybatisplusjion的是最新的包-2023-08-26&#xff09; Error creating bean with name ‘XXXServiceImpl’:…

Python中的format()函数详细讲解

注&#xff1a;所以代码皆成功运行&#xff0c;可直接复制运行 一、基本使用 1、Python中的format()函数是一个格式字符串的函数&#xff0c;通过花括号{}识别替换字段&#xff0c;从而完成字符串的格式化。 #format后面放数字、字符串都可以 print("{}喜欢{}岁的{}&qu…

「Python」机器学习之线性判别分析(代码,不调包)

「Python」机器学习之线性判别分析&#xff08;代码&#xff0c;不调包&#xff09; 前言1 线性判别分析&#xff08;LDA&#xff09;2 实现2.1 LDA实现2.2 数据集示例 3 最后 前言 语言&#xff1a;python库&#xff1a;numpy, matplotlib教材参考&#xff1a;《机器学习》——…

MySql学习4:多表查询

教程来源 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括 多表关系 各个表结构之间存在各种关联关系&#xff0c;基本上分为三种&#xff1a;一对多&#xff08;多对一&#xff09;、多对多、一对一 一对多&#xff08;多对一&…

论文阅读 The Power of Tiling for Small Object Detection

The Power of Tiling for Small Object Detection Abstract 基于深度神经网络的技术在目标检测和分类方面表现出色。但这些网络在适应移动平台时可能会降低准确性&#xff0c;因为图像分辨率的增加使问题变得更加困难。在低功耗移动设备上实现实时小物体检测一直是监控应用的…

计网第四章(网络层)(四)

目录 一、IP数据报的发送和转发过程 发送&#xff1a; 1.直接交付和间接交付 如果判断源主机和目的主机是否在同一个网络中&#xff1f; 2.默认网关&#xff1a; 转发&#xff1a; 路由表&#xff1a; 一、IP数据报的发送和转发过程 发送&#xff1a; 由主机发送IP数据…

统信OS国产操作系统身份证读卡器社保卡读卡web网页开发使用操作流程

用于DONSEE系列身份证阅读器谷歌Chrome火狐Firefox插件&#xff0c;支持的型号有&#xff1a;EST-100、EST-100GS、EST-100G、EST-100U、EST-200G、EST-J13X等。 本方案无缝支持最新版本谷歌Chrome火狐Firefox等网页浏览器&#xff0c;支持H5、Vue、React、Node.js、Electron、…

Java“牵手”天猫商品销量API接口数据,天猫API接口申请指南

天猫平台商品销量接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品销量接口API是一种用于获取电商平台上商品销量数据的接口&#xff0c;通过…

mysql 命令行 执行sql文件

方法1 source source file.sql; file.sql : 绝对路径或 相对路径。 方法2 mysql -u xxx -p < file.sql 方法3 MySQLImport 工具 mysqlimport [options] database file_name 其中&#xff0c;database为要导入数据的数据库名&#xff0c;file_name为要导入的SQL文件名。还可以…

框架分析(5)-Django

框架分析&#xff08;5&#xff09;-Django 专栏介绍Django核心概念以及组件讲解模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;路由&#xff08;URLconf&#xff09;表单&#xff08;Form&#xff09;后台管理&…

【动态规划】1137. 第 N 个泰波那契数

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0. 题目解析1.算法原理1.1 状态表示1.2 状态转移方程1.3初始化1.4 填表顺序1.5 返回值 2.算法代码 &#x1f427; 本篇是整个动态规划的…

RT-Thread 时钟管理

时钟节拍 任何操作系统都需要提供一个时钟节拍&#xff0c;以供系统处理所有和时间有关的事件&#xff0c;如线程的延时、时间片的轮转调度以及定时器超时等。 RTT中&#xff0c;时钟节拍的长度可以根据RT_TICK_PER_SECOND的定义来调整。rtconfig.h配置文件中定义&#xff1a…