首页 > 其他分享 >混入、插件、插槽、vuex、本地存储

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

时间:2024-05-02 22:00:26浏览次数:14  
标签:插件 Vue name 插槽 localStorage user sessionStorage cookie vuex

【混入】

  # 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>

 

 

标签:插件,Vue,name,插槽,localStorage,user,sessionStorage,cookie,vuex
From: https://www.cnblogs.com/liuliu1/p/18170620

相关文章

  • SpringBoot中分页插件PageHelper的使用
    SpringBoot如何使用PageHelper实现分页查询在原始的分页查询方法中,需要编写复杂的SQL语句来限制查询结果的范围,通常需要使用LIMIT或者ROWNUM等数据库特定的语法来实现分页。在每个需要分页的查询方法中,都需要手动计算分页的起始位置和偏移量,通常需要根据页码和每页数量来计算,这部......
  • [POM]idea安装pom文件maven依赖查询插件
    安装前: 安装:Fle->Setting plugin->marketplace搜索“”mavenhelper“”,点击install 安装后,下方多了“DependencyAnalyzer”,支持查看全部依赖、依赖冲突,依赖树,过滤  ......
  • zotero添加markdown插件(Mac版)
    zotero安装官网下载地址:https://www.zotero.orgmarkdown插件下载下载地址:https://gitcode.com/fei0810/markdownhere4zotero/tree/master选择相应的.xpi文件插件安装步骤打开zotero,选择工具->附加组件选择installadd-onfromfile选中刚才下载的.xpi文件点......
  • 06-混入-自定义插件-插槽-本地存储-vuex组件通信-页面跳转
    混入mixin在Vue中,混入(mixin)是一种可以在多个组件中重复使用的对象。它允许您将组件中的一些选项提取出来,然后在多个组件中进行重复使用。混入可以包含组件中的任何选项,例如数据、计算属性、方法等。使用步骤在src文件夹下新建一个文件夹,比如mixin,然后再这个文件夹下面新建一......
  • Smart IME 智能切换中文与英文输入法 - vscode插件推荐
    SmartIME智能切换中文与英文输入法-vscode插件推荐IDEA插件SmartInputVSCode插件SmartIME插件SmartIME本文是针对vscode插件,正常安装SmartIME,就自动安装另外2个插件了SmartIME需要安装IMEandCursor与HyperScopes插件。缺点vscode下,只能是中文......
  • Nuxt2项目Js文件使用Vuex
    背景当前项目是Nuxt2框架,建立了Vuex仓库。通过返回一个函数的形式,建立Vuex代码如下importVuefrom'vue'importVuexfrom'vuex'Vue.use(Vuex)conststore=()=> newVuex.Store({ state:{ name:'abc' }, mutations:{ setName(state,data){ ......
  • Vue3中SEO优化实践:利用unhead vue插件设置Mate标签
    我们在构建Vue3项目时,搜索引擎优化(SEO)是一个不可忽视的重要方面。优化网站结构、内容和代码,使其更符合搜索引擎的排名规则,对于提升网站曝光度和吸引更多用户至关重要。其中,设置合适的Mate标签(如标题、描述和关键词)是SEO优化的关键步骤之一。在Vue3项目中,我们可以利用unhead插件来......
  • 利用AI运动识别插件,可以实现那些应用场景?
    「Ai运动识别」小程序插件已经推出一年有余,迭代了近十几个版本,收获了各类应用场景的众多用户,今天我们就带您深度解析一下插件的各类可应用场景,帮助已集成开发者进行一步拓宽应用场景,帮助有需求的开发者快速选型。在解析应用场前,我们先来回顾一下插件的特点,插件旨在为引用小程序提......
  • Notepad++插件设置
    Notepad++插件设置 1、Notepad++的ComparePlus插件ComparePlus是Notepad++的插件,是Compare的升级版,是同一作者的产品,并且作者声称不再维护Compare老版本ComparePlus允许用户:比较两个文件并排显示差异仅比较两个文件的部分(选择)查找两个文件之间的唯一行根据G......
  • Chrome插件(扩展)开发全攻略 写在前面 我
    Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处。本文所有涉及到的大部分代码均在这个demo里面:https://github.com/sxei/chrome-plugin-demo ,大家可以直接下载下来运行。......