asp.net core前后端分離


陸陸續續的看了兩個禮拜的前端知識,把vue+vue-router+axios的知識擼了一遍,本來想加個element-ui來實現一下前后端分離,實施的時候卻遇到了很多的坑。我本身不在一個軟件開發公司上班,公司又有開發應用的需求。以前公司有錢的時候都是外包出去的,現在經濟不景氣,向我這種的“免費午餐”就有了用武之地。但是開發一些項目也只有我一個人在搞,從數據庫到前端再到后端服務器都是我一個人在搞。實在太幸苦。不為別的,能多掙點兒錢,給孩子用,就好了。先不說沒用的了,這篇文章主要是記錄一些前端的知識點,因為我暫時搞不下去了,先記錄一下,免得白學。

webpack

webpack是一個打包工具,它的作用卻超出了打包這個詞的范圍。使用vue-cli可以創建基於webpack的工程項目。webpack默認的配置文件名是webpack.comfig.js,內容如下:

var path = require('path')
var webpack = require('webpack')

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: 'build.js'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          // vue-loader options go here
        }
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      {
        test: /\.(png|jpg|gif|svg)$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]?[hash]'
        }
      },
      {
        test: /\.css$/,
        loader: "style-loader!css-loader"
      },
      {
        test: /\.(eot|woff|woff2|ttf)([\?]?.*)$/,
        loader: "file-loader"
      }
    ]
  },
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.common.js'
    }
  },
  devServer: {
    historyApiFallback: true,
    noInfo: true
  },
  devtool: '#eval-source-map'
}

if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
    new webpack.LoaderOptionsPlugin({
      minimize: true
    })
  ])
}

還要注意的是element-ui按需加載的話需要配置babel的配置文件,.balbelrc:

{
  "presets": [["env", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

以上這兩個文件需要在vue init webpack xxxx生成工程后再進行修改。先記錄一下,以后有時間繼續搞。

Vue

vue是個好東西,用組件的思維對js的作用域進行了很好的封裝。vue里面比較重要的概念由兩個,一個就是組件,另一個就是路由,這兩個是做單頁面應用必須掌握的東西。當new一個Vue的時候,就是建立了一個根組件,可以在這個Vue的components屬性里面塞進去別的組件,Vue有一個單文件組件的概念,創建單文件組件可以更好的組織代碼。單文件組件是需要通過vue-loader來解析,后者又是基於webpack的生態的。子組件訪問父組件的數據(或者說父組件給子組件傳值)是利用props屬性,這個屬性是聲明在子組件里面的,用來接收父組件傳進來的值。相反方向上的話是利用子組件的$emit()來觸發事件,父組件來監聽這個事件,並接收事件本身傳遞來的值。當我們創建了很多組件,就涉及到如何在頁面上進行展現的問題了,這個是用vue-router來搞的,vue-router就是給每個組件起名字,然后用<router-link>和<router-view>來定向不同的組件。在根組件的router屬性上賦值的時候,可以在子組件中通過$route來進行訪問,如果是一個動態的路由的話(/user/:id),可以通過$route.params來訪問路由的參數值。和組件的概念類似的是,路由也可以有子路由,通過children來定義的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM