混入、插件、插槽、vuex、本地存储

news/2024/10/13 16:22:32

【混入】

  # mixin(混入)

    功能:可以把多个组件共用的配置提取成一个混入对象,不需要在每个组件中都写了

使用步骤

 

 

 。

【插件】

 1 # 1 写plugins/index.js
 2 import Vue from "vue";
 3 import axios from "axios";
 4 import hunru from "@/mixin";
 5 export default {
 6     install(a,name) {
 7         console.log('----------',name)
 8 
 9         // 1 定义全局变量,放到原型中
10         // prototype 原型链,一般定义在原型中的变量,都用 $ 开头,防止污染---》对象中可以定义同名属性,冲突
11         Vue.prototype.$axios = axios
12         // Vue.prototype.$BASE_URL='http://127.0.0.1:8000/'
13 
14 
15         // 2  定义指令  自定义指令
16         //定义全局指令:跟v-bind一样,获取焦点
17         Vue.directive("fbind", {
18             //指令与元素成功绑定时(一上来)
19             bind(element, binding) {
20                 element.value = binding.value;
21             },
22             //指令所在元素被插入页面时
23             inserted(element, binding) {
24                 element.focus();
25             },
26             //指令所在的模板被重新解析时
27             update(element, binding) {
28                 element.value = binding.value;
29             },
30         });
31 
32         // 3 使用混入
33         Vue.mixin(hunru)
34         // 4 定义全局组件--》elementui
35     }
36 }
1 # 3 在main.js中使用,可以传参数
2 # 1 使用自定义插件
3 import my from '@/plugins'
4 Vue.use(my,'lqz') // 内部本质会执行install

==========================================
	-有些第三方插件,用了以后,增强了vue功能-this.$router-全局组件 :el-button-this.$message--->-this.$http.get

【插槽】

 1 # 1 新建组件,定义插槽
 2 <template>
 3   <div class="helloworld">
 4     <h2>我是hello world</h2>
 5     <slot name="a"></slot>
 6     <h2>结束了</h2>
 7     <slot name="b"></slot>
 8 
 9   </div>
10 
11 </template>
12 ============================================
13 # 2 使用组件,使用插槽
14 <template>
15   <div class="home">
16     <h1>首页</h1>
17     <HelloWorld>
18       <template v-slot:a>
19         <div>html结构2</div>
20       </template>
21 
22       <template v-slot:b>
23         <img src="@/assets/logo.png" alt="">
24       </template>
25       
26     </HelloWorld>
27 
28   </div>
29 </template>

【vuex】

 

 

 

【本地存储】

# 登录成功---》token存储 cookie:登录信息放这里,有过期事件,一旦过期,就没了

sessionStorage:当前浏览器生效---》关闭浏览器,数据就没了

localStorage:永久生效,除非代码删除或清空浏览器缓存 -未登录,加购物车

# cookie 需要下载 cnpm install vue-cookies -S

 1 <template>
 2   <div class="home">
 3     <h1>首页</h1>
 4     <h2>localStorage的使用</h2>
 5     <button @click="handleSaveLocalStorage">存储到localStorage</button>
 6     <button @click="handleGetLocalStorage">从localStorage取出</button>
 7     <button @click="handleDeleteLocalStorage">删除localStorage</button>
 8 
 9     <h2>sessionStorage使用</h2>
10     <button @click="handleSavesessionStorage">存储到sessionStorage</button>
11     <button @click="handleGetsessionStorage">从sessionStorage取出</button>
12     <button @click="handleDeletesessionStorage">删除sessionStorage</button>
13     <h2>cookie使用</h2>
14     <!--    -->
15     <button @click="handleSaveCookie">存储到cookie</button>
16     <button @click="handleGetCookie">从cookie取出</button>
17     <button @click="handleDeleteCookie">删除cookie</button>
18 
19   </div>
20 </template>
21 
22 <script>
23 export default {
24   name: 'HomeView',
25   methods: {
26     handleSaveLocalStorage() {
27       localStorage.setItem("name", 'wxx')
28       let user = {
29         name: 'xxx',
30         age: 19
31       }
32       localStorage.setItem("user", JSON.stringify(user)) // 不要放对象
33 
34     },
35     handleGetLocalStorage() {
36       let name = localStorage.getItem("name")
37       let user = localStorage.getItem('user')
38       console.log(name)
39       console.log(user)
40       console.log(typeof user)
41 
42     },
43     handleDeleteLocalStorage() {
44       localStorage.removeItem('name')
45       localStorage.clear()
46 
47     },
48 
49 
50     handleSavesessionStorage() {
51       sessionStorage.setItem("name", '彭于晏')
52     },
53     handleGetsessionStorage() {
54       let name = sessionStorage.getItem('name')
55       console.log(name)
56     },
57     handleDeletesessionStorage() {
58       sessionStorage.removeItem('name')
59       sessionStorage.clear()
60     },
61 
62     handleSaveCookie() {
63       this.$cookies.set('name', 'zzzz', '1h')
64     },
65     handleGetCookie() {
66       let name = this.$cookies.get('name')
67       console.log(name)
68     },
69     handleDeleteCookie() {
70       this.$cookies.remove('name')
71 
72     },
73   }
74 }
75 </script>

 

 

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

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

相关文章

Linux进程

程序与进程 程序:是可执行文件,其本质是是一个文件,程序是静态的,同一个程序可以运行多次,产生多个进程 进程:它是程序的一次运行过程,当应用程序被加载到内存中运行之后它就称为了一个进程,进程是动态的,进程的生命周期是从程序运行到程序退出 父子进程:当一个进程A…

RISC-V SoC研发flow的总结

RISC-V SoC研发flow的总结 今年的流片接近尾声了,我个人的评价是相比去年,在进度管理和流程管理上做的更好了一些。对比今年一月份开会时开会的PPT,基本上当时的规划和目标基本上都达成了。这次聊聊整个研发过程中的一些感悟。 首先是对于整个团队的研发方向做了一个比较大的…

Socket网络编程

Socket编程 为了实现两台不同的机器能够进行通信,所有要使用到网络编程 IP地址与端口号IP地址:用于标识网络上主机的位置,每台网络上的设备都有唯一的ip地址。 端口号:用于标识主机上的哪个应用程序,一台主机上运行的很多应用程序,该数据是传送给哪个应用程序使用的通过端…

golang初学:交叉编译

go version go1.22.1 windows/amd64 Windows 11 + amd64 x86_64 x86_64 GNU/Linux ---序章 golang 支持 跨平台,支持的方式 是 在一个平台 编译其它平台的可执行程序。 本文 介绍 Windows 11(开发主机) 上 编译 Linux(目标主机) 上的可执行程序。#go build开发主机 和 目标…

DRF之三大认证

一、认证 1、自定义认证 在前面说的 APIView 中封装了三大认证,分别为认证、权限、频率。认证即登录认证,权限表示该用户是否有权限访问接口,频率表示用户指定时间内能访问接口的次数。整个请求最开始的也是认证。 (1)需求登陆认证 用户登陆成功--》签发token 以后需要登陆…

Vue入门到关门之Vue项目工程化

一、创建Vue项目 1、安装node环境官网下载,无脑下一步,注意别放c盘就行Node.js — Run JavaScript Everywhere (nodejs.org)需要两个命令npm---->pip node--->python装完检查一下,hello world检测,退出crtl+c2、搭建vue项目环境装cnpm 这个包,下载东西会快很多,装模…

第6讲需求分析--uml用例图

用例图 一.识别参与者 参与者在系统外所以画图时画在框外。系统用例图比业务用例图更完善所以经常让画的是系统用例图。在商品销售系统里:参与者是顾客。 在会计系统里:参与者是商品销售系统。 二.关系 1.参与者之间 泛化关系子指向父 2.参与者和用例之间 关联关系3.用例和用…

认知提升的方法

认知提升的方法一、什么是认知 经验是对于过往经历的总结归纳,当把这种经验传授给别人时,这种经验对别人来说就是知识。所以,知识是人脑对客观事物的信息沉淀。 技能是人们通过练习而获得的动作方式和系统,例如操作技能中的PS技术、木工技术、电工技术、水工技术等,而能力…