Vue-cli

Vue CLI 脚手架

1.介绍

CLI 命令行界面

Vue CLI 基于Vue.js的快速开发系统

2.环境准备

nodejs安装

环境变量path:安装路径

输入node -v 出现版本安装成功

设置淘宝镜像

npm set registry http://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org

仓库位置

npm config ls
npm config set prefix "your setting path"

配置依赖下载位置

npm config set cache D:\npmreps\npm-cache
npm config set cache D:\npmreps\npm_global

3.npm

包管理工具(node package manager)

初始化

npm init -y    -y默认配置

出现package.json

安装jquery

npm i jquery

在新环境中输入,会根据依赖自动下载库

npm i

安装 卸载 更新

nmp i 库名
nmp uninstall 库名    
npm ls 查看是否卸载
nmp update 库名

npm list -g  看所有全局安装的模块
npm list grunt 某个模块的版本号
npm -v
npm install npm -g   升级npm
npm install <Module Name>  

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如

npm install express          # 本地安装
npm install express -g   # 全局安装

本地安装

    1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
    1. 可以通过 require() 来引入本地安装的包。

全局安装

    1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
    1. 可以直接在命令行里使用。

4.安装脚手架

#3.x版本脚手架
npm uninstall -g @vue/cli

#2.x版本脚手架
npm uninstall -g vue-cli

#安装vue cli
npm install -g vue-cli

1.创建vue脚手架项目

vue-cli2
vue init webpack  项目名
npm start      运行项目(根目录)

vue-cli3
vue create 项目名称
npm run serve

2.安装了vue-cli 3.x 后如何使用 vue-cli 2.x 创建项目?

需要安装一个桥接工具才能使用 vue-cli 2.x创建项目

npm install -g @vue/cli-init

创建Vue项目:

vue init webpack 项目名称

5.Vue-cli2项目结构

hello               项目名称
    -build          使用webpack打包使用的build依赖      
    -config         整个项目配置目录     
    -node_modules   管理项目中使用的依赖          
    -src            Vue源码
        assets       用来存放静态资源
        components   写Vue组件
        router       配置项目的路由
        App.vue      项目根组件
        main.js      项目主入口
    -static           其他静态资源  
    -.babelrc         将es6转为es5      
    -.editorconfig    项目编辑配置     
    -.gitignore         
    -.postcssrc.js        
    -index.html       项目主页     
    -package.json     依赖管理    
    -package-lock.json 对依赖加锁      
    -README.md      

1.项目开发方式 一切皆组件

2.一个组件中 js代码 html代码 css样式

3.一个组件对应一个一个的业务功能

4.流程:默认main.js-->app.vue-->(把路由注册到对象)-->index.js(由于app中有rout-view) --->检测到路由为根-->helloword.vue

5.main.js 根vue组件,不建议修改

6.改路由在index.js里修改

7.helloword可以当成主页

app.vue

export default {暴露当前组件
  name: 'App',
  data(){
    return{
      msg:"6666"
    }
  },
  methods:{},
  created() {
  }
}


6.新建组件

1.新建一个组件home.vue

2.在index.js里import home from '../components/Home'

3.配置访问路径

4.引用组件

import Footer (组件名) from ' '

在export default 的components注册Footer 
在template里<Footer></Footer>

7.安装axios

  1、npm 安装axios,文件根目录下安装,指令如下:

 npm install axios --save-dev

  2、在main.js中引入axios。 

import axios from 'axios'

  3、接着将axios改写为Vue的原型属性

Vue.prototype.$http=axios

  4、全局配置baseURL(后面如果接口baseURL更改了,可直接修改这里就可以了)

Vue.prototype.$http.defaults.baseURL = ``''`  `//`baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL

5.使用

this.$http.get('url').then(res=>{})

6.编译打包

npm run build

8.安装 element-ui

1.安装

npm install element-ui -S

2.在mian.js中引入

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import ElementUI from 'element-ui';(1)
import 'element-ui/lib/theme-chalk/index.css';(2)

Vue.config.productionTip = false
Vue.prototype.$http=axios
Vue.prototype.$http.defaults.baseURL="http://localhost"

Vue.use(ElementUI);(3)

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

表格获取当前行ID

      <el-table-column
        label="操作">
         <template slot-scope="scope">
                <el-button type="text" @click="delEvaluate(scope.row.evaluateId)">删除</el-button>
          </template>
      </el-table-column>

9.使用jquery

在index.html中引入

 <script src="static/jquery.min.js"></script>

10.常用配置类

新建utils文件夹放入

request.js用来请求数据,封装的代码如下:

import axios from 'axios'

const request = axios.create({
	baseURL: '/api',  // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!!
    timeout: 5000
})

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
  
 // config.headers['token'] = user.token;  // 设置请求头
    return config
}, error => {
    return Promise.reject(error)
});

// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)


export default request


在项目根目录下

vue.config.js:

// 跨域配置
module.exports = {
    devServer: {                //记住,别写错了devServer//设置本地默认端口  选填
        port: 9876,
        proxy: {                 //设置代理,必须填
            '/api': {              //设置拦截器  拦截器格式   斜杠+拦截器名字,名字可以自己定
                target: 'http://localhost:9999',     //代理的目标地址
                changeOrigin: true,              //是否设置同源,输入是的
                pathRewrite: {                   //路径重写
                    '^/api': ''                     //选择忽略拦截器里面的内容
                }
            }
        }
    }
}

11.后端返回结果

public class Result<T> {
    private String code;
    private String msg;
    private T data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Result() {
    }

    public Result(T data) {
        this.data = data;
    }

    public static Result success() {
        Result result = new Result<>();
        result.setCode("0");
        result.setMsg("成功");
        return result;
    }

    public static <T> Result<T> success(T data) {
        Result<T> result = new Result<>(data);
        result.setCode("0");
        result.setMsg("成功");
        return result;
    }

    public static Result error(String code, String msg) {
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        return result;
    }
}
上一篇:记录一个在线文本文档编辑工具etherpad-lite


下一篇:c语言_Day12_07_11