国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vue2練習(xí)之仿美團(tuán)外賣開發(fā)(一)

X1nFLY / 3346人閱讀

摘要:的雙向數(shù)據(jù)綁定方法我覺得很巧妙我是尤雨溪腦殘粉為什么選美團(tuán)外賣美團(tuán)外賣項(xiàng)目估計(jì)差不多能夠設(shè)計(jì)到大部分技術(shù)點(diǎn),不包括服務(wù)端渲染作為練習(xí)夠用了。平日里我點(diǎn)外賣一直用美團(tuán)。用多了可能也比較了解美團(tuán)外賣吧。

前言

很多初學(xué)者尤其是像我這樣的公司有且只有一個(gè)前端的時(shí)候,硬著頭皮去學(xué)習(xí)一門新框架,周圍無人幫忙,平日里遇到問題只能求助于思否,百度,google。點(diǎn)擊我的個(gè)人頭像去看我的提問你們就知道vue小白去學(xué)習(xí)vue真的很心累。網(wǎng)上搜索的時(shí)候搜索出來的都是一些簡(jiǎn)單的demo.教學(xué)網(wǎng)站上的項(xiàng)目也是一些簡(jiǎn)單的單頁(yè)面或者稍微多幾個(gè)頁(yè)面。對(duì)我這種新手入門可以,但是拿到手做生產(chǎn)開發(fā)還是遠(yuǎn)遠(yuǎn)不夠。于是我嘗試寫一個(gè)練手型項(xiàng)目,具體頁(yè)面有多少我也沒啥數(shù),用到的技術(shù)有啥我也沒啥數(shù),總之想到哪里開發(fā)到哪里,中間會(huì)回來查漏補(bǔ)缺。里面代碼我盡量每句都會(huì)有注釋,希望大佬們看到以后不吝賜教。指出錯(cuò)誤。

為什么選擇VUE

1學(xué)習(xí)曲線平滑,沒有NG以及react的學(xué)習(xí)起來難度那么大。
2setget的雙向數(shù)據(jù)綁定方法我覺得很巧妙
3我是尤雨溪腦殘粉

為什么選美團(tuán)外賣

美團(tuán)外賣項(xiàng)目估計(jì)差不多能夠設(shè)計(jì)到大部分VUE技術(shù)點(diǎn),(不包括服務(wù)端渲染)作為練習(xí)夠用了。當(dāng)然真正的外賣開發(fā)需要的東西遠(yuǎn)不止這些,我的目標(biāo)僅僅是完成一個(gè)粗糙的框架。用作練習(xí)。
平日里我點(diǎn)外賣一直用美團(tuán)。用多了可能也比較了解美團(tuán)外賣吧。emmmm 我就是喜歡美團(tuán)外賣==

技術(shù)棧

其實(shí)我也不知道我會(huì)用到哪些東西,是基于vuecli做的擴(kuò)展 后面再增加的話會(huì)回來修改
vue2 + vuex + vue-router +axios+ webpack + ES6+flex+stylus+ vw + svg

參考代碼

頁(yè)面代碼風(fēng)格以及實(shí)現(xiàn)方式參考的是這里 vue-admin(入門vue我是對(duì)著這個(gè)學(xué)的)

為什么使用VW布局以及2X3X圖

人都是往前走的,不去嘗試新的東西怎么進(jìn)步呢。我覺得VW挺好用的于是我就用了,個(gè)人練手不會(huì)考慮適配呀兼容性的問題,喜歡就去用啦。
VW如何在vue中使用,以及1px等比例等解決方案可以點(diǎn)這里
2X3X圖 我選擇直接3X圖==偷懶了。抱歉

關(guān)于設(shè)計(jì)稿

==我手機(jī)截圖然后發(fā)電腦上設(shè)計(jì)的emmmm 就是這么粗糙

目錄結(jié)構(gòu)
├── build                      // 構(gòu)建相關(guān)
├── config                     // 配置相關(guān)
├── src                        // 源代碼
│   ├── api                    // 所有請(qǐng)求
│   ├── assets                 // 靜態(tài)資源
│   ├── components             // 全局公用組件
│   ├── router                 // 路由
│   ├── store                  // 全局 store管理
│   ├── utils                  // 全局公用方法
│   ├── pages                  // 頁(yè)面
│   ├── App.vue                // 入口頁(yè)面               
│   └── main.js                // 入口文件 
├── static                     // 未用到 
├── .babelrc                   // babel-loader 配置
├── .eslintrc.js               // eslint 配置項(xiàng)
├── .gitignore                 // git 忽略項(xiàng)
├── index.html                 // html模板
├── .postcssrc                 // postcss配置地址
└── package.json               // package.json

今天第一天我只把項(xiàng)目的腳手架搭了一半。路由還沒有寫。考慮到第一個(gè)頁(yè)面就需要使用store。所以我先寫了store
涉及到兩個(gè)文件夾


├── api                                     
│   └── login.js
├── utils
│   └── request.js    
├── store
├── ├── modules    
│   │     └── user.js  
├── ├── getters.js
│   └── index.js

主要代碼

import { loginByUsername, logout, loginByMobile } from "@/api/login"
import Cookies from "js-cookie"

const emptyuser = {
  userId: "", // 用戶ID
  name: "", // 用戶名
  avatar: "", // 用戶頭像
  hasaccount: "", // 是否有賬號(hào)密碼,可能有手機(jī)號(hào)驗(yàn)證碼直接登錄未設(shè)置賬號(hào)密碼
  mobile: "", // 手機(jī)號(hào)
  wx: ""http:// 是否綁定微信號(hào)
}
const user = {
  userinfo: Cookies.get("userinfo") || {
    userId: "", // 用戶ID
    name: "", // 用戶名
    avatar: "", // 用戶頭像
    hasaccount: "", // 是否有賬號(hào)密碼,可能有手機(jī)號(hào)驗(yàn)證碼直接登錄未設(shè)置賬號(hào)密碼
    mobile: "", // 手機(jī)號(hào)
    wx: ""http:// 是否綁定微信號(hào)
  },
  mutations: {
    SET_USERINFO: (state, code) => {
      state.userinfo = {...code}
      // 修改對(duì)象或者數(shù)組的時(shí)候養(yǎng)成用展開運(yùn)算符的習(xí)慣
    }
  },
  actions: {
    // 用戶名登錄
    LoginByUsername ({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
        loginByUsername(userInfo.username, userInfo.password).then(response => {
          const data = response.data
          commit("SET_USERINFO", data.userinfo)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
    LoginByMobile ({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
        loginByMobile(userInfo.mobile, userInfo.code).then(response => {
          const data = response.data
          commit("SET_USERINFO", data.token)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
    // 登出
    LogOut ({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.userId).then(() => {
          commit("SET_USERINFO", emptyuser)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    }
  }
}

export default user

vue的store相比較redux簡(jiǎn)單很多。
分四部分。
state:?jiǎn)我粻顟B(tài)機(jī),所有需要在每個(gè)頁(yè)面共享的數(shù)據(jù)都存放在這里,不如上面代碼里的用戶信息
getters:拿取狀態(tài)機(jī)中對(duì)應(yīng)的狀態(tài)。(查)
mutations:制定修改數(shù)據(jù)的規(guī)則。
Action:進(jìn)行修改數(shù)據(jù),與mutations匹配,異步操作放在這里。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/52696.html

相關(guān)文章

  • 仿美團(tuán)外賣的全棧項(xiàng)目(vue+node+mongodb)帶支付->大三求實(shí)習(xí)

    摘要:前端項(xiàng)目包含多個(gè)路由,涉及到文件有個(gè),功能設(shè)計(jì)登錄,定位,瀏覽商品,加購(gòu)物車,下訂單,支付支持微信和支付寶的掃碼支付和調(diào)起支付,評(píng)價(jià),個(gè)人信息更改,是一個(gè)較為完整的項(xiàng)目。 關(guān)于 2019屆大三學(xué)生,前段時(shí)間一直想一個(gè)人單獨(dú)開發(fā)一個(gè)較為完整的項(xiàng)目,在眾多應(yīng)用中,考慮之后選擇了美團(tuán)外賣來模仿,這段時(shí)間就利用課余時(shí)間進(jìn)行開發(fā),前端用vue+vuex+vue-router+axios,因?yàn)樾枰?..

    anRui 評(píng)論0 收藏0
  • 仿美團(tuán)外賣的全棧項(xiàng)目(vue+node+mongodb)帶支付->大三求實(shí)習(xí)

    摘要:前端項(xiàng)目包含多個(gè)路由,涉及到文件有個(gè),功能設(shè)計(jì)登錄,定位,瀏覽商品,加購(gòu)物車,下訂單,支付支持微信和支付寶的掃碼支付和調(diào)起支付,評(píng)價(jià),個(gè)人信息更改,是一個(gè)較為完整的項(xiàng)目。 關(guān)于 2019屆大三學(xué)生,前段時(shí)間一直想一個(gè)人單獨(dú)開發(fā)一個(gè)較為完整的項(xiàng)目,在眾多應(yīng)用中,考慮之后選擇了美團(tuán)外賣來模仿,這段時(shí)間就利用課余時(shí)間進(jìn)行開發(fā),前端用vue+vuex+vue-router+axios,因?yàn)樾枰?..

    iflove 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

X1nFLY

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<