客栈前端

ccf 2b430eee3e 项目aivibe 1 månad sedan
.nuxt 2b430eee3e 项目aivibe 1 månad sedan
.vscode 5341560fcb 修改签约页面文案 5 år sedan
assets fc92e3815f 样式调整 3 år sedan
components 3400edcc9f dd 1 månad sedan
layouts c171d0ed0c 工作经验认证 2 år sedan
middleware 6376f8ea12 aliyun 3 år sedan
mixins 6376f8ea12 aliyun 3 år sedan
pages 2b430eee3e 项目aivibe 1 månad sedan
plugins 3400edcc9f dd 1 månad sedan
router 9394bcef6f feat: remove or disable useless logging 5 år sedan
static f68b2bef42 feat: add robots.txt 5 år sedan
store 925e753d39 [breaking] remove kaifain_v2 from this project 5 år sedan
.editorconfig 108006c6bc 修改跳转环境链接 6 år sedan
.gitignore d18e1f32ef 测试环境和生产环境分开 4 år sedan
.npmrc 24918fe920 完成多域名支持改造 6 år sedan
.nuxtignore 31afc2b072 开发宝 UI问题修改 5 år sedan
LICENSE 108006c6bc 修改跳转环境链接 6 år sedan
README.md 108006c6bc 修改跳转环境链接 6 år sedan
app.html ca9909b735 feat: separate stats code 5 år sedan
core.140 d1f1bb9378 企业认证 3 år sedan
core.160 d1f1bb9378 企业认证 3 år sedan
core.161 d1f1bb9378 企业认证 3 år sedan
core.163 d1f1bb9378 企业认证 3 år sedan
core.165 d1f1bb9378 企业认证 3 år sedan
core.170 d1f1bb9378 企业认证 3 år sedan
core.171 d1f1bb9378 企业认证 3 år sedan
core.174 d1f1bb9378 企业认证 3 år sedan
core.180 d1f1bb9378 企业认证 3 år sedan
core.197 d1f1bb9378 企业认证 3 år sedan
ecosystem.config.yml 1dae2e4fc2 采用本地编译 4 år sedan
nuxt.config.js 2b430eee3e 项目aivibe 1 månad sedan
package-lock.json 8ab9b3e0f0 语言 1 år sedan
package.json cff9a3fd66 个人主页技术圈的入口,去掉添加资源的入口 3 år sedan
tsconfig.json 925e753d39 [breaking] remove kaifain_v2 from this project 5 år sedan
yarn d1f1bb9378 企业认证 3 år sedan
yarn.lock cff9a3fd66 个人主页技术圈的入口,去掉添加资源的入口 3 år sedan
yarn1 d1f1bb9378 企业认证 3 år sedan

README.md

程序员客栈--前端项目

基于Nuxtjs,Element UI,该项目包括客栈主站和技术圈。自动化部署,dev分支自动更新到dev环境,master分支自动更新到线上环境

Build Setup 建议用yarn保证版本稳定运行

# install dependencies
$ yarn install

# serve with hot reload at localhost:3000, local.proginn.com:3000
$ yarn run dev

目录结构

.
├── LICENSE
├── README.md
├── app.html                # app html template
├── assets                  # static img css
│   ├── README.md
│   ├── css
│   └── img
├── components              # components
│   ├── README.md
│   ├── agreement.vue
│   ├── footer.vue
│   ├── group
│   ├── header.vue
│   ├── inner_header.vue
│   ├── input
│   ├── type
│   ├── ver_code.vue
│   ├── ws
│   └── wx_header.vue
├── dist                    # useless
│   ├── 200.html
│   ├── README.md
│   ├── _nuxt
│   ├── cert
│   ├── favicon.ico
│   ├── index.html
│   └── type
├── layouts                 # layout
│   ├── README.md
│   ├── default.vue
│   └── opacity_header.vue
├── middleware              # middelware useless now
│   ├── README.md
│   └── authenticated.js
├── mixins                  # mixins
│   ├── getDeviceType.js    # deviceType
│   ├── group.js
│   └── wx.js
├── nuxt.config.js          # nuxt config
├── package.json            # package.json
├── pages                   # pages(static router)
│   ├── README.md
│   ├── cert
│   ├── community
│   ├── group
│   ├── index.vue
│   ├── setting
│   ├── type
│   ├── user
│   └── wo
├── plugins
│   ├── README.md
│   ├── axios.js            # useless
│   ├── common.js           # common methods
│   ├── element.js          # element ui inject
│   ├── http.js             # useless
│   └── nuxtAxios.js        # nuxt axios config
├── static
│   ├── README.md
│   └── favicon.ico         # favicon
├── store
│   ├── README.md
│   └── index.js            # create store
└── yarn.lock               # 勿删

开发注意

  • 路由没有明确的区分技术圈和主站,所以修改之前最好确认请求路径以确认修改页面
  • 由于测试环境和线上环境cookie键值相同,所以尽量在隐身模式下测试开发环境避免不必要的麻烦
  • 开发之前需要本地设置host(127.0.0.1 local.proginn.com)以使用cookie
  • API交互格式统一application/x-www-form-urlencoded,否者无法访问成功
  • 调用API尽量只能使用Nuxtjs本身集成的Axios,使用方式 js async asyncData({ $axios, params, req }) { let id = params.id; let headers = req && req.headers; let res = await $axios.$get( `/api/user/getUserInfo?id=${id}&page=1&size=10`, { headers } ); return { title: `${res.data.info.nickname}的技术圈主页-程序员客栈` }; }, methods: { async getDetail() { let res = await this.$axios.$get( `/api/user/getUserInfo?id=${this.$route.params.id}&page=1&size=10` ); // console.log(res.data) document.title = `${res.data.info.nickname}的技术圈主页-程序员客栈`; if (res) { this.idInfo = res.data; } }, }
  • 项目全局使用Vuex作为状态管理保存登录状态,可以调用全局store获取userInfo
  • 使用mixins实现设备判断,设备状态包括pc,ios,android,通过this.deviceType可以获取
  • 路由鉴权未实现,有接口不同页面需要不同处理,即使API返回都是未登录可能也不要跳转到登录页
  • plugins下有个common.js处理了页面公共逻辑,比如是否需要登录直接调用this.needLogin(),是否需要实名认证this.needVerify(),获取用户信息this.getUserInfo()即可
  • layout有两个一个透明的一个非透明的,移动端下没有header也没有footer
  • 有些公共组件抽象了出来,比如日期range选择,单、多文件上传,编辑器
  • vuex 的store中可以存放一些全局变量,例如手机号正则、email正则,当然也可以独立成constants
  • 静态文件放在assets中,通过@/assets/访问,css中用~@/assets
  • 发布部署直接上传dev开发环境,master生产环境 *