首页
关于
归档
留言板
友链
工具
更多
壁纸
视频
Search
1
TypeError: Cannot read properties of undefined (reading 'map')
2,127 阅读
2
fail api scope is not declared in the privacy agreement
1,609 阅读
3
el-input自动获取焦点(element-ui)
884 阅读
4
组件封装时判断slot是否存在
833 阅读
5
vscode代码切换大小写的教程
750 阅读
小程序
其他
服务器
开发
Vue
uni-app
React
登录
Search
标签搜索
VUE
javascript
小程序
react
wxapp
uni-app
vue3
HTML
CSS
富文本
npm
Vuex
GIT
Element-UI
Linux
上传图片
cookie
localStorage
sessionStorage
内网穿透
Chris
累计撰写
107
篇文章
累计收到
6
条评论
首页
栏目
小程序
其他
服务器
开发
Vue
uni-app
React
页面
关于
归档
留言板
友链
工具
壁纸
视频
搜索到
3
篇与
Vuex
的结果
2022-07-18
vuex中modules的基本用法
这篇文章主要介绍了vuex中modules的基本用法store文件结构- src - components - store -index.js -modules -app.js -bus.jsindex.js中-手动引入modulesimport Vue from 'vue' import Vuex from 'vuex' import bus from './module/bus' import app from './module/app' Vue.use(Vuex) export default new Vuex.Store({ state: { // 这里是根vuex状态 }, mutations: { // 这里是根vuex状态 }, actions: { // 这里是根vuex状态 }, modules: { // 子vuex状态模块注册 namespaced: true, // 为了解决不同模块命名冲突的问题 app, bus } })index.js中-动态引入modulesimport Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const dynamicModules = {} const files = require.context('.', true, /\.js$/) const dynamicImportModules = (modules, file, splits, index = 0) => { if (index == 0 && splits[0] == 'modules') { ++index } if (splits.length == index + 1) { if ('index' == splits[index]) { modules[splits[index - 1]] = files(file).default } else { modules.modules[splits[index]] = files(file).default } } else { let tmpModules = {} if ('index' == splits[index + 1]) { tmpModules = modules } else { modules[splits[index]] = modules[splits[index]] ? modules[splits[index]] : {namespaced: true, modules: {}} tmpModules = modules[splits[index]] } dynamicImportModules(tmpModules, file, splits, ++index) } } files.keys().filter(file => file != './index.js').forEach(file => { let splits = file.replace(/(\.\/|\.js)/g, '').split('\/'); dynamicImportModules(dynamicModules, file, splits) }) export default new Vuex.Store({ modules: dynamicModules, strict: process.env.NODE_ENV !== 'production' })app.js文件内容const state = { user: {}, // 需要管理的状态数据 } const mutations = { setUser (state, val) { state.user = val } } const getters = {} const actions = {} export default { namespaced: true, state, mutations, getters, actions }使用 a.vue页面// 使用模块中的mutations、getters、actions时候,要加上模块名,例如使用commint执行mutations时 // 格式: 模块名/模块中的mutations this.$store.commit("app/setUser", user) // 获取属性时同样加上模块名 this.$store.state.app.user utils.js中使用// 引入 这里的store 就相当于页面中的 this.$store import store from '@/store' export const setCurUser = (user) => { let curUser = store.app.user if(!curUser) { store.commit("app/setUser", user) return user } return curUser }配置main.jsimport Vue from 'vue' import App from './App' import router from './router' import store from './store' new Vue({ el: '#app', router, store, render: h => h(App) })
2022年07月18日
147 阅读
0 评论
0 点赞
2022-06-30
vuex中store存储store.commit和store.dispatch的区别及用法
代码示例this.$store.commit('loginStatus', 1); this.$store.dispatch('isLogin', true);规范的使用方式// 以载荷形式 store.commit('increment',{ amount: 10 //这是额外的参数 }) // 或者使用对象风格的提交方式 store.commit({ type: 'increment', amount: 10 //这是额外的参数 })主要区别dispatch:含有异步操作,数据提交至 actions ,可用于向后台提交数据写法示例: this.$store.dispatch('isLogin', true);commit:同步操作,数据提交至 mutations ,可用于登录成功后读取用户信息写到缓存里写法示例: this.$store.commit('loginStatus', 1);{alert type="warning"}两者都可以以载荷形式或者对象风格的方式进行提交{/alert}参考vuex的安装和简单使用vuex使用总结和详解
2022年06月30日
119 阅读
0 评论
0 点赞
2021-11-16
vue全家桶
vue全家桶都有什么{card-list}{card-list-item} 全家桶,顾名思义,对于开发一个完整的中大型单页面应用项目所必须的所必须的插件和框架。{/card-list-item}{card-list-item} 注:此文章主要讲解vue-cli脚手架开发方式,主要介绍各插件安装方法及其功能特点,不介绍各插件的具体使用方式,具体使用方式详见其他详细介绍文章。{/card-list-item}{/card-list}{collapse}{collapse-item label="vue-cli"} vue-cli也叫脚手架,官方定义为Vue.js 开发的标准工具!相比scirpt标签引入,脚手架具有如下特点:1)、功能丰富对 Babel、TypeScript、ESLint、PostCSS、PWA、单元测试和 End-to-end 测试提供开箱即用的支持。2)、易于扩展它的插件系统可以让社区根据常见需求构建和共享可复用的解决方案。3)、无需 EjectVue CLI 完全是可配置的,无需 eject。这样你的项目就可以长期保持更新了。4)、CLI 之上的图形化界面通过配套的图形化界面创建、开发和管理你的项目。5)、即刻创建原型用单个 Vue 文件即刻实践新的灵感。6)、面向未来为现代浏览器轻松产出原生的 ES2015 代码,或将你的 Vue 组件构建为原生的 Web Components 组件。安装npm install -g @vue/cli # OR yarn global add @vue/cli //安装完成后创建一个项目,vue ui为图形化构建,相对简单(推荐) vue create my-project # OR vue ui{/collapse-item}{collapse-item label="vueRouter"} Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:1)嵌套的路由/视图表2)模块化的、基于组件的路由配置3)路由参数、查询、通配符4)基于 Vue.js 过渡系统的视图过渡效果5)细粒度的导航控制6)带有自动激活的 CSS class 的链接7)HTML5 历史模式或 hash 模式,在 IE9 中自动降级8)自定义的滚动条行为安装npm install vue-router //安装后在mainjs引入 import VueRouter from 'vue-router' Vue.use(VueRouter){/collapse-item}{collapse-item label="vuex"}Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。什么情况下我应该使用 Vuex?Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 store 模式就足够您所需了。但是,如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。安装npm install vuex --save{/collapse-item}{collapse-item label="Axios"}Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。特性1)从浏览器中创建 XMLHttpRequests2)从 node.js 创建 http 请求3)支持 Promise API4)拦截请求和响应5)转换请求数据和响应数据6)取消请求7)自动转换 JSON 数据8)客户端支持防御 XSRF安装npm install axios{/collapse-item}{collapse-item label="搭配UI框架如:iview、vant、elementUI"}iview 一套基于 Vue的高质量UI 组件库(分为小程序和pc端等不同版本);vant 轻量、可靠的移动端 Vue 组件库,是有赞开源的一套基于 Vue 2.0 的 Mobile 组件库,旨在更快、更简单地开发基于 Vue 的美观易用的移动站点。Ant Design Vue 是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品。elementUI 是基于 Vue 2.0 桌面端中后台组件库。{/collapse-item}{/collapse}
2021年11月16日
133 阅读
0 评论
0 点赞