vueThink两天写出前端登录界面

用这玩意真的好想哭,一步一坑,等写完登录界面已经变成‘泥人’,真是前后端分离以后前端变得专业了,感觉完全不会写了。单纯的tp5框架加js两个小时写完的登录写了2天,还是在vueThink已经有demo的情况下。

1.躲避eslint的非人类级别检查

各种报错:应该空几个空格,但是你空了几个;应该不写分号结果你写了。。。类似这样写会疯吧,于是各种查eslint怎么屏蔽掉,终于找到要隐藏webpack.base.conf.js如下代码:

eslint: {
    configFile: './.eslintrc.json'
  },

然而并没有什么用,各种找都没什么用。

然后没办法只好把这几个重点检查的webpack.xx.xx.js和main.js从头到尾看一次,终于找到:

preLoaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'eslint'
      },
      {
        test: /\.vue$/,
        exclude: /node_modules/,
        loader: 'eslint'
      }
    ],

这一段,这段隐藏,终于不做严格检查了。

2.jquery导入

从没想过导入一个东西这么麻烦,原来不分离的时候,只要把包放进来,网页导入一次就行了,这个地方好多是用安装:

npm install jquery --save-dev

安装完了然而还要各种配置:
webpack.base.conf.js还要在添加plugins插件:
后面两个new是新加入的。

  plugins: [
    new webpack.DefinePlugin({
      HOST: process.env.NODE_ENV === 'production' ? PUB_HOST : DEV_HOST
    }),
      new webpack.optimize.CommonsChunkPlugin('common.js'),
      new webpack.ProvidePlugin({
          jQuery: "jquery",
          $: "jquery"
      })
  ],

你以为这就结束了么?天真了。。。
main.js还要加入:

import $ from 'jquery'

安装bootstrap:

npm install bootstrap --save-dev

使用时导入:

import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.min'

可以了吧?没有!!!!
编译时出现:Bootstrap dropdown require Popper.js
缺少poper.js,好吧,我们再装一个:

npm install --save popper.js

记得在刚刚webpack.base.conf.js加一句:

  plugins: [
    new webpack.DefinePlugin({
      HOST: process.env.NODE_ENV === 'production' ? PUB_HOST : DEV_HOST
    }),
      new webpack.optimize.CommonsChunkPlugin('common.js'),
      new webpack.ProvidePlugin({
          jQuery: "jquery",
          $: "jquery",
          Popper: ['popper.js', 'default'],
      })
  ]

此时bootstrap勉强能用,但是字体和字体图标还是不能用,这个弄了半天还是搞不定,没办法去用了另外一套。

层次问题

这个是制作界面过程中才发现的

 <el-form-item prop="username" class="login_input_bg">
                <span class="fa fa-user"></span>
                <input id="txt_name" v-model="form.username" class="login_input" type="text" placeholder="请输入商家名称"
                       @focus="addFocus('txt_name')" @blur="removeFocus('txt_name')"/>
            </el-form-item>

这里的el-form-item标签是两层,不是一层!
在网页里面F12看到的:

<div class="el-form-item login_input_bg is-required"><!---->
    <div class="el-form-item__content">
        <span class="fa fa-user"></span> 
        <input id="txt_name" type="text" placeholder="请输入商家名称" class="login_input"><!---->
    </div>
</div>

所以在用vue的过程中一定要注意看网页的F12的生成代码,vue有时候会有两层。

session问题

我遇到这个问题的时候还没写到登录,是后端提供的验证码,我的思路是把真实的识别对照内容存到session,登录验证的时候取出。然而单用后台可以,用前端却不行,始终取不到session,原因是前端每次访问都产生不同的session。

找了半天,不解,后面找到有个叫axios的前端框架,main.js要加这么一句:

axios.defaults.withCredentials=true;

终于可以。

vueThink这东西到底好不好用我不知道,反正如果自己做前端后台不分离的建议不用,有点麻烦。如果有专业前端的,那应该还好,怪不得我们公司后台的跟我说不懂前端。。。好吧,我也不懂,不然也不能这么简单一个登陆折腾2天。学做网页最大的感想是android真的好简单好容易,什么都有代码提示,界面基本可以边做边看着。当然像什么拖动,内嵌网页之类的还是有点麻烦,但总体容易。现在居然感觉后台比前端容易,我是不是疯了?

猜你喜欢

转载自blog.csdn.net/yu_duan_hun/article/details/81031202