[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9006":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":19,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":15,"starSnapshotCount":15,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},9006,"vue-cnode","lzxb\u002Fvue-cnode","lzxb","基于vue2 + vue-router + vuet + ES6 + less + flex.css重写vue版cnode社区，使用webpack2打包","",null,"Vue",1110,308,72,0,52.47,false,"master",true,[21,22,5,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"cnodejs","vue","vue-cnodejs","vue-components","vue-demo","vue-js","vue-router","vue-router2","vue-ui","vue2","vue2-demo","vuejs","vuejs2","vuex","vuex-router-sync","vuex2","2026-06-12 04:00:42","\n## 此项目除了正常的bug修复，不再进行功能更新\n如果对状态管理感兴趣，可以看下 [Tms](https:\u002F\u002Fgithub.com\u002FFollowmeTech\u002Ftms)，文档更齐全\n\n### 前言\n\n项目灵感的最初来源是[@shinygang](https:\u002F\u002Fgithub.com\u002Fshinygang\u002FVue-cnodejs)来自的Vue-cnodejs，\n感谢[cnodejs](https:\u002F\u002Fcnodejs.org\u002F)社区提供的API。\ngithub：[https:\u002F\u002Fgithub.com\u002Flzxb\u002Fvue-cnode](https:\u002F\u002Fgithub.com\u002Flzxb\u002Fvue-cnode)\n### 感悟\n```\n在vue-cnode升级vue2的时候，在公司内部已经有两个正式项目使用vue2，\n遇到的一个最难的问题，就是如何能在页面后退时还原数据和滚动条位置，\n虽然vue2内置了keep-alive组件，vue-router也提供了scrollBehavior方法进行设置，\n但是仍然无法满足需求，后来阅读vue-router的源码发现，\n每个页面都会自动在history.state对象中存储一个对应的key值，\n便利用这个特性实现了页面后退时，数据和滚动条还原，\n不过目前只是实现了页面的顶级组件还原，\n如果需要对顶级组件下的子组件实现数据还原，\n可以利用$options._scopeId来实现。\n哈哈，具体如何实现就要靠大家自己发挥想象力了\n```\n\n### 技术栈\n```\n基于vue2 + vue-router + vuet + ES6 + less + flex.css重写vue版cnode社区，使用webpack打包\n```\n\n### 使用项目\n```\n1.克隆项目：      git clone https:\u002F\u002Fgithub.com\u002Flzxb\u002Fvue-cnode.git\n2.安装nodejs\n3.安装依赖：      npm install\n4.启动服务：      npm run dev\n5.发布代码：      npm run build\n```\n\n### 功能\n- [x] 首页列表，上拉加载\n- [x] 主题详情，回复，点赞\n- [x] 消息列表\n- [x] 消息提醒\n- [x] 消息标记为已读\n- [x] 个人主页\n- [x] 用户信息\n- [x] 登录\n- [x] 退出\n- [x] 关于\n- [x] 页面后退，数据还原\n- [x] 页面后退，滚动位置还原\n- [x] ajax请求拦截器\n- [x] 页面跳转，不再执行此页面的ajax请求回调方法\n- [x] 启动图\n\n\n\n### 项目目录说明\n```\n.\n|-- config                           \u002F\u002F 项目开发环境配置\n|   |-- index.js                     \u002F\u002F 项目打包部署配置\n|-- src                              \u002F\u002F 源码目录\n|   |-- components                   \u002F\u002F 公共组件\n|       |-- content.vue              \u002F\u002F 页面内容公共组件\n|       |-- data-null.vue            \u002F\u002F 数据为空时公共组件\n|       |-- footer.vue               \u002F\u002F 底部导航栏公共组件\n|       |-- header.vue               \u002F\u002F 页面头部公共组件\n|       |-- index.js                 \u002F\u002F 加载各种公共组件\n|       |-- loading.vue              \u002F\u002F 页面数据加载公共组件\n|   |-- config                       \u002F\u002F 路由配置和程序的基本信息配置\n|       |-- config.js                \u002F\u002F 配置项目的基本信息\n|       |-- routes.js                \u002F\u002F 配置页面路由\n|   |-- css                          \u002F\u002F 各种css文件\n|       |-- common.css               \u002F\u002F 全局通用css文件\n|   |-- iconfont                     \u002F\u002F 各种字体图标\n|   |-- images                       \u002F\u002F 公共图片\n|   |-- less                         \u002F\u002F 各种less文件\n|       |-- common.less              \u002F\u002F 全局通用less文件\n|       |-- config.less              \u002F\u002F 全局通用less配置文件\n|   |-- lib                          \u002F\u002F 各种插件\n|       |-- route-data               \u002F\u002F 实现页面后退数据还原，滚动位置还原\n|   |-- mixins                       \u002F\u002F 各种全局mixins\n|       |-- pull-list.js             \u002F\u002F 上拉加载\n|   |-- pages                        \u002F\u002F 各种页面组件\n|       |-- about                    \u002F\u002F 关于\n|       |-- index                    \u002F\u002F 首页\n|       |-- login                    \u002F\u002F 登录\n|       |-- my                       \u002F\u002F 我的主页，和消息列表\n|       |-- signout                  \u002F\u002F 退出\n|       |-- topic                    \u002F\u002F 主题详情，主题新建\n|       |-- user                     \u002F\u002F 查看用户资料\n|   |-- store                        \u002F\u002F vuex的状态管理\n|       |-- index.js                 \u002F\u002F 加载各种store模块\n|       |-- user.js                  \u002F\u002F 用户store\n|   |-- template                     \u002F\u002F 各种html文件\n|       |-- index.html               \u002F\u002F 程序入口html文件\n|   |-- utils                        \u002F\u002F 公共的js方法\n|   |-- app.vue                      \u002F\u002F 页面入口文件\n|   |-- main.js                      \u002F\u002F 程序入口文件，加载各种公共组件\n|-- .babelrc                         \u002F\u002F ES6语法编译配置\n|-- webpack.config.js                \u002F\u002F 程序打包配置\n|-- server.js                        \u002F\u002F 开发时使用的服务器\n|-- README.md                        \u002F\u002F 项目说明\n|-- package.json                     \u002F\u002F 配置项目相关信息，通过执行 npm init 命令创建\n.\n```\n\n### [扫一扫二维码查看效果](http:\u002F\u002Flzxb.github.io\u002Fvue-cnode\u002F)\n [![扫一扫二维码查看效果](https:\u002F\u002Fgithub.com\u002Flzxb\u002Fvue-cnode\u002Fraw\u002Fmaster\u002Fshot\u002FQR-code.png)](http:\u002F\u002Flzxb.github.io\u002Fvue-cnode\u002F)\n","lzxb\u002Fvue-cnode 是一个基于 Vue 2 框架重写的 CNode 社区前端项目，使用了 vue-router、vuex、ES6、less 和 flex.css 等现代前端技术，并通过 webpack2 进行打包。该项目实现了包括首页列表上拉加载、主题详情与互动、消息管理、用户登录及个人主页等功能，特别优化了页面后退时的数据和滚动条位置还原功能。适合于需要构建具有复杂交互逻辑的单页应用（SPA）场景，特别是对状态管理和用户体验有较高要求的应用开发。",2,"2026-06-11 03:20:45","top_language"]