Vue笔记(一)基础

VUE

官方文档:https://cn.vuejs.org/


创建VUE项目

前提:已安装 16.0 或更高版本的 Node.js

进入要创建的目录,执行命令: npm create vue@latest


安装依赖,启动:

bash 复制代码
//进入项目目录,运行命令安装依赖
npm install
//启动vue项目
npm run dev

VUE项目目录结构

复制代码
.vscode     //编辑器生成的一些配置
node_modules    // vue项目的运行依赖文件
public  //资源文件
src     //源码文件,主要操作的文件夹
.gitignore  //git忽略文件的配置
index.html  // 项目的入口文件
package.json    //npm管理文件,一些依赖的版本等
README.md   // 项目介绍文件,自定义
vite.config.js  // vue的配置文件

事件修饰符

在处理事件时调用 event.preventDefault() 或 event.stopPropagation() 是很常见的。尽管我们可以直接在方法内调用,但如果方法能更专注于数据逻辑而不用去处理 DOM 事件的细节会更好。

为解决这一问题,Vue 为 v-on 提供了事件修饰符。修饰符是用 . 表示的指令后缀,包含以下这些:

. stop

. prevent

. self

. capture

. once

. passive

javascript 复制代码
<!-- 单击事件将停止传递 -->
<a @click.stop="doThis"></a>

<!-- 提交事件将不再重新加载页面 -->
<form @submit.prevent="onSubmit"></form>

<!-- 修饰语可以使用链式书写 -->
<a @click.stop.prevent="doThat"></a>

<!-- 也可以只有修饰符 -->
<form @submit.prevent></form>

<!-- 仅当 event.target 是元素本身时才会触发事件处理器 -->
<!-- 例如:事件处理器不来自子元素 -->
<div @click.self="doThat">...</div>

组件

一般会将组件定义在一个单独的.vue文件中,这被叫做单文件组件

javascript 复制代码
<script>
export default{
    data(){
        return{
            count:0
        }
    }
}
</script>
<template>
    <button @click="count++">这是一个组件</button>
</template>

使用组件

一个组件可以被多次使用(同一父组件内),每使用一个组件,就创建一个新的实例。

  1. 在父组件中导入子组件
  2. 注册组件,将导入的组件暴露给模版
  3. 使用组件
javascript 复制代码
<script>
//1. 导入组件
import ButtonCounter from './ButtonCounter.vue'

export default{
    //2. 注册组件
    components:{
        ButtonCounter
    }
}
</script>

<template>
    <h1>Child component</h1>
    <!-- 3.使用组件 -->
    <ButtonCounter />
    <ButtonCounter />
</template>

父组件向子组件传值

  1. 子组件声明props
  2. 父组件传数据给子组件
javascript 复制代码
//1. 子组件声明props
<script>
    export default{
        props:['name']
    }
</script>

<!-- 使用参数 -->
<template>
    <h1>{{ name }}</h1>
</template>

//2. 父组件传值
<ButtonCounter name="My name is VUE" />

监听事件

  1. 子组件可以用过调用内置的$emit方法,通过传入事件名称来抛出一个事件
  2. 父组件可以通过v-on@来选择性地监听组件上抛出的事件
javascript 复制代码
//1. 子组件抛出hello事件
<template>
    <button @click="$emit('hello')">点击我抛出事件</button>
</template>

//2. 父组件监听器抛出的hello事件
<child-component @hello="alert(1)" />

插槽

父组件向子组件中传入内容

  1. 子组件中定义<slot>作为一个占位符
  2. 父组件使用子组件时传入内容
javascript 复制代码
//1. 子组件中定义<slot>占位
<template>
    <h1>插槽</h1>
    <slot />
</template>

//2. 父组件中使用子组件时,传入内容
<child-component>
    This is content.
</child-component>

动态组件

有些场景会需要在两个组件间来回切换,比如Tab,可以通过<component>元素和特殊的is attribute实现:

javascript 复制代码
// child-component可以是 1.被注册的组件名,也可以是 2.导入的组件对象
<component :is="child-component"></component>

当使用<component>来在多个组件间切换时,被切换掉的组件会被卸载,可以通过<keepAlive>组件强制被切换掉的组件扔保持存活状态。

相关推荐
猪头男4 分钟前
【从零开始学习Vue|第八篇】深入组件——组件事件
前端
薛一半13 分钟前
React三大属性之refs
前端·javascript·react.js
程序员林北北34 分钟前
【前端进阶之旅】Svelte:编译即框架,让前端开发回归简洁
前端·javascript·vue.js·react.js·html5
yy.y--1 小时前
Java线程实现浏览器实时时钟
java·linux·开发语言·前端·python
Dontla1 小时前
Python Streamlit介绍(开源Python Web应用框架,快速将Python脚本转换成交互式Web应用,适合数据科学和机器学习项目快速展示)
前端·python·开源
少云清1 小时前
【UI自动化测试】12_web自动化测试 _验证码处理和cookie
前端·python·web自动化测试
蒸蒸yyyyzwd2 小时前
os八股学习笔记
笔记·学习
Yeh2020582 小时前
2月14日笔记
笔记
不想看见4042 小时前
House Robber 基本动态规划:一维--力扣101算法题解笔记
笔记·算法·leetcode·代理模式
linux_cfan2 小时前
2026版 WordPress 视频插件终极选型:知识付费创作者如何低成本打造专业在线课堂?
前端·javascript·音视频·html5