当前位置: 首页 > news >正文

前端传值及本地存储方式的简单介绍

介绍:前端开发中,组件间通信和本地数据存储是至关重要的。本文将介绍前端常见的组件传值方式和本地存储方式。

### 组件间传值

在前端开发中,组件间传递数据是非常常见的。我们通常使用以下方法来实现:

#### 1. 父子组件传值

父组件通过属性向子组件传递数据,子组件使用 `props` 来接收这些数据。示例代码如下:

```vue
<!-- 父组件 -->
<template>
  <Son :token="yourToken"></Son>
</template>

<script>
import Son from "../components/Son.vue";

export default {
  components: {
    Son,
  },
  data() {
    return {
      yourToken: "your token value",
    };
  },
};
</script>

<!-- 子组件 -->
<script>
export default {
  props: ["token"],
  mounted() {
    console.log(this.token); // 使用父组件传递的 token
  },
};
</script>
```

#### 2. 子父组件传值

子组件通过 `$emit` 触发事件向父组件传递数据。父组件使用 `v-on` 监听子组件触发的事件,接收传递的数据。示例代码如下:

```vue
<!-- 子组件 -->
<script>
export default {
  methods: {
    sendData() {
      this.$emit("yourEventName", "your data"); // 触发自定义事件并传递数据
    },
  },
};
</script>

<!-- 父组件 -->
<template>
  <Son @yourEventName="handleData"></Son>
</template>

<script>
import Son from "../components/Son.vue";

export default {
  components: {
    Son,
  },
  methods: {
    handleData(data) {
      console.log(data); // 接收子组件传递的数据
    },
  },
};
</script>
```

### 本地存储方式

在前端中,我们可以使用不同的本地存储方式来保存数据。

#### 1. localStorage

```javascript
// 存储数据
localStorage.setItem("key", "value");

// 获取数据
const data = localStorage.getItem("key");

// 移除数据
localStorage.removeItem("key");
```

#### 2. sessionStorage

```javascript
// 存储数据
sessionStorage.setItem("key", "value");

// 获取数据
const data = sessionStorage.getItem("key");

// 移除数据
sessionStorage.removeItem("key");
```

#### 3. Cookie

在前端,我们可以使用 `document.cookie` 来操作 Cookie,不过这种方式使用相对较少,因为它的一些限制和安全性问题。

相关文章:

  • C/C++ 前缀和与差分
  • 基于单片机的智能健康监测手环的设计
  • Python数据科学视频讲解:数据清洗、特征工程和数据可视化的注意事项
  • 【从零开始学习JVM | 第一篇】快速了解JVM
  • mysql中NULL值
  • 设计模式——单例模式(Singleton Pattern)
  • 基于单片机音乐盒仿真仿真系统设计
  • css实现头部占一定高度,内容区占剩余高度可滚动
  • Qt 容器QGroupBox带有标题的组框框架
  • SpringBoot集成Elasticsearch8.x(9)|(RestClient实现Elasticsearch DSL操作)
  • deepface:实现人脸的识别和分析
  • 3GPP标准查看、下载和几个UE相关系列标准
  • Transformer源码(带注释)
  • 机器学习中Fine-tuning应用实例
  • nginx配置正向代理支持https
  • 深入了解以太坊
  • JavaScript-如何实现克隆(clone)函数
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Iterator 和 for...of 循环
  • JS变量作用域
  • Markdown 语法简单说明
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PAT A1120
  • Redis在Web项目中的应用与实践
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spring声明式事务管理之一:五大属性分析
  • TypeScript迭代器
  • vue-router的history模式发布配置
  • Yii源码解读-服务定位器(Service Locator)
  • 分类模型——Logistics Regression
  • 基于Android乐音识别(2)
  • 计算机在识别图像时“看到”了什么?
  • 力扣(LeetCode)965
  • 聊聊flink的BlobWriter
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端路由实现-history
  • 前嗅ForeSpider教程:创建模板
  • 巧用 TypeScript (一)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 什么软件可以剪辑音乐?
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一些css基础学习笔记
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Java总结 - String - 这篇请使劲喷我
  • (27)4.8 习题课
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (C语言)字符分类函数
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (五)Python 垃圾回收机制
  • (转)jdk与jre的区别
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .a文件和.so文件