首页>>前端>>Vue->vue脚手架及常用指令集合

vue脚手架及常用指令集合

时间:2023-11-30 本站 点击:1

vue的特点

渐进式

数据驱动视图 (响应式)

组件系统

vue-cli 脚手架介绍

@vue/cli是Vue官方提供的一个全局模块包(得到vue命令), 此包用于创建脚手架项目

快速搭建项目结构,安装命令:

yarn global add @vue/cli# ORnpm install -g @vue/cli

用脚手架创建项目需要四个步骤:

创建项目

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo

选择模板

通过键盘的上下箭头选择合适的模板,如果选择错了,可以按下ctrl+c终止操作。

选择你需要的模板 vue2/vue3

安装依赖

如果安装了yarn,第一次会让你选择以哪种方式下载第三方包(use yarn或use npm),可根据个人习惯选择

启动项目

记得 cd vuecil-demo到根文件夹

启动项目

yarn serve# ORnpm run serve

之所以用这个命令可以进行项目启动是脚手架帮我们在package.json中添加了自定义命令:

可以自行修改,同样的项目打包命令:

yarn build# ORnpm run build

我们会得到一个项目的架子:

 vuecil-demo        # 项目目录    ├── node_modules # 项目依赖的第三方包    └── public       # 静态文件目录      ├── favicon.ico# 浏览器小图标      └── index.html # 单页面的html文件(网页浏览的是它)    ├── src          # 业务文件夹=》写代码      ├── assets     # 静态资源          └── logo.png # vue的logo图片      ├── components # 组件目录          └── HelloWorld.vue # 欢迎页面vue代码文件       ├── App.vue    # 整个应用的根组件      └── main.js    # 入口js文件    ├── package.json # 描述项目及项目    ├── .gitignore   # git提交忽略配置    ├── babel.config.js  # babel配置     ├── README.md    # 项目说明      └── package-lock.json # 项目包版本锁定和下载地址

vue-cli 覆盖webpack配置

vue-cli使用vue 命令快速创建项目,它创建的每个项目都有相同的结构;

它的运行机制是基于webpack的,在项目创建是内部已经帮我们配置好了

要想覆盖webpack的配置,需要在vue.config.js中配置,如默认我们启动项目服务时,不会自动打开浏览器,我们可以自行配置:

const { defineConfig } = require('@vue/cli-service')module.exports = defineConfig({  transpileDependencies: true,  devServer:{    host: 'localhost',    open: true,    port: 3000  }})

另外,初学者可以设置关闭eslint,熟练之后再打开

 lintOnSave: false

MVVM设计模式

转变思维, 用数据驱动视图改变, 操作dom的事, vue源码内干了

设计模式: 是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。

MVVM,一种软件架构模式,决定了写代码的思想和层次

M: model数据模型 (data里定义)

V: view视图 (html页面)

VM: ViewModel视图模型 (Vue.js源码)

MVVM通过数据双向绑定让数据自动地双向同步 不再需要操作DOM

V(修改视图) -> M(数据自动同步)

M(修改数据) -> V(视图自动同步) 可以在devtool工具(Chrome的插件)改变M层的变量, 观察V层(视图的自动同步),可在以下插件地址自行下载:https://chrome.zzzmh.cn/#/index

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

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

vue的基本指令

vue指令, 实质上就是特殊的 html 标签属性, 特点: v- 开头

每个指令, 都有独立的作用

1.插值表达式

功能: 数据渲染。 将数据(变量,或者利用ajax从后端获取到的数据)展示到页面上。这里它不会直接操作dom,而是有自己的语法。

<template>  <div>    <h1>{{ msg }}</h1>    <h2>{{ obj.name }}</h2>    <h3>{{ obj.age > 18 ? '成年' : '未成年' }}</h3>  </div></template><script>export default {  data() { // 格式固定, 定义vue数据之处    return {  // key相当于变量名      msg: "hello, vue",      obj: {        name: "小vue",        age: 5      }    }  }}</script><style></style>

{{ }} 可以:

写data数据字段名称

对data数据字段进行表达式运算

拼接

算术运算

三元运算

...

2.vue指令v-bind

功能: 给标签属性设置vue变量的值

语法:v-bind:属性名="vue变量"

简写::属性名="vue变量"

<!-- vue指令-v-bind属性动态赋值 --><a v-bind:href="url">我是a标签</a><img :src="imgSrc">

总结: 把vue变量的值, 赋予给dom属性上, 影响标签显示效果

3.vue指令-v-for

功能: 列表渲染, 所在标签结构, 按照数据数量, 循环生成

语法:标签 v-for="(值, 索引或者属性名) in 目标结构" :key="唯一值"></标签>

索引可以省略

目标结构可以是:数组 / 对象 / 数字

注意:

v-for的临时变量名不能用到v-for范围外

<template>  <div>    <ul>      <li v-for="(item, index) in arr" :key="item.id">        {{ index + 1 }}---{{ item.name }}// item代表数组中的每一项,index代表当前下标      </li>    </ul>    <hr />    <ul>      <li v-for="(value, key) in obj" :key="key">{{ value }}---{{ key }}</li>      // value代表对象中的值,key表示属性名    </ul>    <hr />    <ul>      <li v-for="index in 100" :key="index">        我爱你 // index代表1~100中的数字      </li>    </ul>  </div></template><script>export default {  data() {    return {      obj: { a: 100, b: 200 },      arr: [        { id: 1, name: "张三" },        { id: 2, name: "王五" },        { id: 3, name: "李四" },      ],    };  },};</script><style></style>

4.vue指令v-text和v-html

功能 : 更新DOM对象的innerText/innerHTML

语法:

v-text="vue数据变量"

v-html="vue数据变量"

注意: 会覆盖插值表达式

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo0

v-text把值当成普通字符串显示, v-text ===> innerText

v-html把值当做html解析,v-html ===> innerHTML

5.vue指令v-show和v-if

功能 : 控制标签的隐藏或出现

语法:

如果vue变量的值为true,就可见,否则就不可见。

v-show="vue变量"

v-if="vue变量"

原理

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo1

v-show 用的display:none隐藏 (频繁切换使用)

v-if 直接从DOM树上添加或移除

v-show 性能较好,对应需要频繁切换显示与隐藏的功能,可以使用v-show。

注意无论变量是否为true还是false,它一定会创建元素的。

v-if 会动态创建和删除元素。

在频繁的切换可见与不可见时,它的效率会低一点

如果变量的值为false,它将不会创建元素

特殊的适用v-if的场景:如果是登陆用户就显示头像

注意避免v-for和v-if在一起使用

Vue 处理指令时,v-for 比 v-if 具有更高的优先级, 虽然用起来也没报错好使, 但是性能不高, 如果你有5个元素被v-for循环, v-if也会分别执行5次.

6.vue指令v-if,v-else-if,else

功能 : 模板中的选择结构

与js中的if选择结构是一致的。

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo2

示例:

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo3

7.vue指令v-on

功能 : 给标签绑定事件

语法

v-on:事件名="要执行的少量代码"

v-on:事件名="methods中的函数"

v-on:事件名="methods中的函数(实参)"

简写: @事件名="methods中的函数"

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo4

vue指令v-on事件对象

目标: vue事件处理函数中, 拿到事件对象(这里的事件对象与原生js操作dom获取来的完全一样)

语法:

无传参, 通过形参直接接收

传参, 通过$event指代事件对象传给事件处理函数

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo5

vue指令v-on事件修饰符

功能 : 在事件后面.修饰符名 - 给事件带来更强大的功能

语法:

@事件名.修饰符="methods里函数"

.stop - 阻止事件冒泡

.prevent - 阻止默认行为

.once - 程序运行期间, 只触发一次事件处理函数

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo6

vue指令-v-on按键修饰符

目标: 给键盘事件, 添加修饰符, 增强能力

语法:

@keyup.enter - 监测回车按键

@keyup.esc - 监测返回按键

更多修饰符

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo7

8.vue指令-v-model双向绑定

功能 : 把value属性和vue数据变量, 双向绑定到一起

语法: v-model="vue数据变量"

双向数据绑定

数据变化 -> 视图自动同步

视图变化 -> 数据自动同步

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo8

总结:

v-model适用于表单开发,自动获取用户输入或选择数据 特别注意: v-model, 在input[checkbox]的多选框状态时 变量为非数组, 则绑定的是checked的属性(true/false) - 常用于: 单个绑定使用 变量为数组, 则绑定的是他们的value属性里的值 - 常用于: 收集勾选了哪些值

vue指令-v-model修饰符

功能 : 让v-model拥有更强大的功能

语法:

v-model.修饰符="vue数据变量"

.number 以parseFloat转成数字类型

.trim 去除首尾空白字符

.lazy 在change时触发而非inupt时

# vue和create是命令, vuecli-demo是文件夹名vue create vuecli-demo9

更多指令官网可查:https://cn.vuejs.org/


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