Vue学习笔记一(2019)

news2024/12/24 21:35:11

1.Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

 1 const store = new Vuex.Store({
 2   state: {
 3     count: 0
 4   },
 5   mutations: {
 6     increment (state) {
 7       state.count++
 8     }
 9   }
10 })
11 
12 store.commit('increment')
13 
14 console.log(store.state.count) 

api:https://vuex.vuejs.org/zh/guide/getters.html

2.

...mapGetters
...是ES6的扩展运算符,表示不定个数。
应用:
1 const [first, ...rest] = [1, 2, 3, 4, 5];  
2 first // 1  
3 rest // [2, 3, 4, 5]  
4 const [first, ...rest] = [];  
5 first // undefined  
6 rest // []:  
7 const [first, ...rest] = ["foo"];  
8 first // "foo"  
9 rest // []

详参

https://hao5743.github.io/2017/02/17/es6%20%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6%20%E4%B8%89%E4%B8%AA%E7%82%B9%EF%BC%88...%EF%BC%89/

mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性

1 mapGetters({
2   // 把 `this.doneCount` 映射为 `this.$store.getters.doneTodosCount`
3   doneCount: 'doneTodosCount'
4 })

3.vue的ref属性

<div class="menu" ref="menuBorder">

就可以将class为menu的dom属性集合,即menuBorder挂载到this.refs上,通过this.refs.menuBorder就可以访问了

类似DOM选择器的效果

示例:

js:

export default {
    data() {
        return {
            menuList: [{
                name: '一级目录',
                children: [
                    {
                        name: '二级目录',
                        children: [
                            {
                                name: '三级目录',
                                children: ['内容']
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            }
                        ]
                    },{
                        name: '二级目录',
                        children: [
                            {
                                name: '三级目录',
                                children: ['内容']
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            },
                            {
                                name: '二级目录',
                                children: [{
                                    name: '三级目录',
                                    children: ['内容']
                                }]
                            }
                        ]
                    }],
            }]
        };
    },

    methods:{
        moveArrow:function (e) {
            console.log($(e.target).offset().top)
            let parentTop=this.$refs.menuBorder.offsetTop;
            var top = $(e.target).offset().top - parentTop;
            $('.arrow').css('top', top );
        }
    }
};

html:

 1 <style src="./example.less" lang="less" scoped></style>
 2 <template>
 3     <div class="menu">
 4         <div>
 5             <div class="side-bar">
 6             </div>
 7             <ul class="catalog-list" >
 8                 <li class="level1" v-for="firstLevel in menuList">
 9                     <em class="circle-pointer"></em>
10                     <a href="#" class="title-link">{{firstLevel.name}}</a>
11                     <ul v-if="firstLevel.children.length>0">
12                         <li class="level2" v-for="secondLevel in firstLevel.children">
13                             <em class="pointer"></em>
14                             <a href="#" class="title-link">{{secondLevel.name}}</a>
15 
16                             <ul v-if="secondLevel.children.length>0">
17                                 <li class="level3"
18                                     @click="moveArrow"
19                                     v-for="thirdLevel in secondLevel.children">
20                                     <a :href="'#item_'+thirdLevel.id" class="title-link">{{thirdLevel.name}}</a>
21                                 </li>
22                             </ul>
23                         </li>
24                     </ul>
25                 </li>
26                 <li class="last"> <em class="circle-pointer"></em></li>
27                 <a class="arrow" href="javascript:void(0);"></a>
28             </ul>
29 
30         </div>
31 
32     </div>
33 </template>
34 <script src="./example.js"></script>

效果:

4.

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

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

相关文章

【移动机器人】基于JADE改进差分算法的多AGV轨迹规划

最近帮同学做个东西&#xff0c;但是问题在于是之前从没接触过的领域–移动机器人轨迹规划&#xff0c;虽然也是搞机器人的&#xff0c;但是对 AGV 那边的情况是一无所知&#xff0c;这次能完成也算是挑战成功。此次任务目的是多辆AGV小车搬运货物&#xff0c;保证搬运总时间最…

Git学习part1

02.尚硅谷_Git&GitHub_为什么要使用版本控制_哔哩哔哩_bilibili 1.Git必要性 记录代码开发的历史状态 &#xff0c;允许很多人同时修改文件&#xff08;分布式&#xff09;且不会丢失记录 2.版本控制工具应该具备的功能 1&#xff09;协同修改 多人并行不悖的修改服务器端…

MinIO分布式存储k8s集群部署

一、MinIO是什么 MinIO是go开发的&#xff0c;高性能分布式存储&#xff1b;基于GNU AGPL v3开源&#xff0c;可免费使用&#xff1b; 官网&#xff1a;https://min.io/ github: https://github.com/minio/minio 官网宣传MinIO是世界上速度最快的分布式对象存储&#xff1b; …

Typora导出的PDF目录标题自动加编号

Typora导出的PDF目录标题自动加编号 在Typora主题文件夹增加如下文件后&#xff0c;标题便自动加上了编号&#xff1a; https://gitcode.net/as604049322/blog_data/-/blob/master/base.user.css 例如&#xff1a; 但是导出的PDF中&#xff0c;目录却没有编号&#xff1a; 这…

ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)

加载方式FiberVEH Hook Load Fiber是纤程免杀&#xff0c;VEH是异常报错&#xff0c;hook使用detours来hook VirtualAlloc和sleep&#xff0c;通过异常报错调用实现主动hook 纤程Fiber的概念&#xff1a;纤程是比线程的更小的一个运行单位。可以把一个线程拆分成多个纤程&#…

高可用集群介绍

一、高可用集群概念 高可用集群&#xff08; High Availability Cluster, HA 集群&#xff09;&#xff0c;其中高可用的含义是最大限度地可以使用。从集群 的名字上可以看出&#xff0c;此类集群实现的功能是保障用户的应用程序持久、不间断地提供服务。当应用程序出现故障或…

XSSchallenge1-20

test1 第一题直接在test插入XSS代码即可 test2 第二关对内容进行”“包裹 这里可以采用”>来绕过 test3 代码审计发现这里用了htmlspecialchars函数&#xff0c;这个函数对<>和’ “等进行了转义&#xff0c;这里可以用事件来绕过 test4 这里用了str_replace&a…

vue+elementUI el-table实现单选

if (selection.length > 1) {this.$refs.table.clearSelection();this.$refs.table.toggleRowSelection(selection.pop());}

Kubernetes技术--k8s核心技术持久化存储

有时候需要在集群中进行一些重要的数据进行持久化存储,然后需要的时候再进行挂载,那么下面我们一起来看看如何实现数据的持久化存储操作。 1.nfs网络存储 -1.找一台服务器做nfs的服务端,安装nfs。(这里我们直接在master上实现)。 这里应该找再单独的搭建一个node节点做持…

Linux多线程同步机制(下)

文章目录 前言一、读写锁二、条件变量总结 前言 一、读写锁 多线程同步机制中的读写锁&#xff08;Read-Write Lock&#xff09;是一种特殊的锁机制&#xff0c;用于控制对共享资源的读写访问。读写锁允许多个线程同时读取共享资源&#xff0c;但在写操作时需要独占访问。 读…

2023年IT服务行业研究报告

第一章 行业概况 1.1 定义 IT服务行业是一个广泛的术语&#xff0c;涵盖了所有提供技术支持和服务的公司。这些服务包括系统集成&#xff0c;云计算服务&#xff0c;软件和硬件支持&#xff0c;网络服务&#xff0c;咨询服务&#xff0c;以及一系列其他类型的技术服务。此外&…

CodeFlow - 渐进式低代码开发管理工具(目前仅服务于前端)

CodeFlow 渐进式低代码开发管理工具 目前仅支持前端开发的使用。 简介 通过界面化操作&#xff0c;简化工作流程。 目前项目支持情况 前端 vue3 软件构想图 codeflow构想图.png 目前功能与界面 功能 前端Web 支持工程管理&#xff0c;将不同的项目归纳到一个工程下进行管理支持…

聊聊检索增强,LangChain一把梭能行吗?

背景 ChatGPT诞生之初&#xff0c;大家仿佛从中看到了未来&#xff1a;可以拿着大语言模型&#xff08;LLM&#xff09;这把锤子&#xff0c;锤遍业务上的钉子。其中最被看好的场景&#xff0c;莫过于搜索&#xff0c;不仅是微软、谷歌、百度这样的大公司将LLM用到自己的搜索业…

【ES6】Promise的入门介绍

Promise 是 JavaScript 中的一个对象&#xff0c;用于处理异步操作。Promise 对象代表一个最终可能完成&#xff08;并得到结果&#xff09;或失败&#xff08;并被拒绝&#xff09;的操作&#xff0c;以及其结果的值。 一个 Promise 有三种状态&#xff1a; Pending&#xf…

记录--vue 拉伸指令

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言 在我们项目开发中,经常会有布局拉伸的需求,接下来 让我们一步步用 vue指令 实现这个需求 动手开发 在线体验 codesandbox.io/s/dawn-cdn-… 常规使用 解决拉伸触发时机 既然我们使用了指令的方式…

10.引入导航栏样式

1.导航栏为单独一个组件 在element-ui中引入导航栏的代码 &#xff01;注意 内容一定要在template中&#xff0c;否则bug遇到很久 <template><div><!-- 页面布局 --><el-container><!-- 侧边栏 --><el-aside width"200px"><…

模拟电子技术基础学习笔记二 杂质半导体

通过扩散工艺&#xff0c;在本征半导体中掺入少量合适的杂质元素&#xff0c;可得到杂质半导体。 按掺入的杂质元素不同&#xff0c;可形成N型半导体和P型半导体 控制掺入杂质元素的浓度&#xff0c;可以控制杂质半导体的导电性能。 一、N型半导体&#xff08;negative Semic…

独家首发!openEuler 主线集成 LuaJIT RISC-V JIT 技术

RISC-V SIG 预期随主线发布的 openEuler 23.09 创新版本会集成 LuaJIT RISC-V 支持。本次发版将提供带有完整 LuaJIT 支持的 RISC-V 环境并带有相关软件如 openResty 等软件的支持。 随着 RISC-V SIG 主线推动工作的进展&#xff0c;LuaJIT 和相关软件在 RISC-V 架构下的支持也…

活用 命令行通配符

本文是对 阮一峰老师命令行通配符教程[1]的学习与记录 通配符早于正则表达式出现,可以看作是原始的正则表达式. 其功能没有正则那么强大灵活,而胜在简单和方便. - 字符 切回上一个路径/分支 如图: !! 代表上一个命令, 如图: [Linux中“!"的神奇用法](https://www.cnblogs.…

【ES6】Promise.all用法

Promise.all()方法用于将多个 Promise 实例&#xff0c;包装成一个新的 Promise 实例。 const p Promise.all([p1, p2, p3]);上面代码中&#xff0c;Promise.all()方法接受一个数组作为参数&#xff0c;p1、p2、p3都是 Promise 实例&#xff0c;如果不是&#xff0c;就会先调…