# vuejs-cli
**Repository Path**: kobin_141925/vuejs-cli
## Basic Information
- **Project Name**: vuejs-cli
- **Description**: 脚手架-jshand
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-10
- **Last Updated**: 2024-04-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 安装vuejs
```
```
或者:
```
```
# 使用vue-cli
## 安装nodejs
- 下载
https://nodejs.org/en

- 安装







## 验证node安装
```cmd
Microsoft Windows [版本 10.0.19045.3570]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Administrator>node --version
v16.20.2
C:\Users\Administrator>npm --version
8.19.4
C:\Users\Administrator>
```

# Node介绍
Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于[Chrome](https://baike.baidu.com/item/Chrome/5633839?fromModule=lemma_inlink) [V8](https://baike.baidu.com/item/V8/6178125?fromModule=lemma_inlink)引擎的[JavaScript](https://baike.baidu.com/item/JavaScript/321142?fromModule=lemma_inlink)[运行环境](https://baike.baidu.com/item/运行环境/6555199?fromModule=lemma_inlink),使用了一个[事件驱动](https://baike.baidu.com/item/事件驱动/9597519?fromModule=lemma_inlink)、非阻塞式I/O模型, [1] 让JavaScript 运行在[服务端](https://baike.baidu.com/item/服务端/6492316?fromModule=lemma_inlink)的[开发平台](https://baike.baidu.com/item/开发平台/8956190?fromModule=lemma_inlink),它让JavaScript成为与[PHP](https://baike.baidu.com/item/PHP/9337?fromModule=lemma_inlink)、[Python](https://baike.baidu.com/item/Python/407313?fromModule=lemma_inlink)、[Perl](https://baike.baidu.com/item/Perl/851577?fromModule=lemma_inlink)、[Ruby](https://baike.baidu.com/item/Ruby/11419?fromModule=lemma_inlink)等服务端语言平起平坐的[脚本语言](https://baike.baidu.com/item/脚本语言/1379708?fromModule=lemma_inlink)。 [2]
Node.js对一些特殊[用例](https://baike.baidu.com/item/用例/163511?fromModule=lemma_inlink)进行优化,提供替代的[API](https://baike.baidu.com/item/API/10154?fromModule=lemma_inlink),使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript[运行时](https://baike.baidu.com/item/运行时/3335184?fromModule=lemma_inlink)建立的平台, 用于方便地搭建响应速度快、易于扩展的[网络应用](https://baike.baidu.com/item/网络应用/2196523?fromModule=lemma_inlink)。 [3]
## 使用node运行http服务
```
const http = require('http');
//加载文件模块
const fs = require("fs");
const hostname = '127.0.0.1';
//端口
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/html');
/** fs.readFile('./game.html', (err, data) => {
if (err) throw err;
console.log(data.toString);
res.end(data);
});
*/
res.end('hello world')
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
```


# 安装 vue-cli
使用vue-cli创建工程化的 项目(模块化开发)
vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目。 下面介绍 vue-cli 的整个搭建过程。
安装 **vue-cli** 需要用到 NPM包管理器工具
> 打开cmd 运行安装的命令
>
> npm install -g @vue/cli@4.1.1 --registry=https://registry.npmmirror.com
> 安装成功

## 验证vue脚手架
```
C:\Users\Administrator>vue -V
@vue/cli 4.1.1
```
# 使用脚手架创建项目
```
vue create vuejs2
```



# 启动项目
使用npm 提供的脚手架 vue-service 启动前端项目
```
npm run serve
```


# 介绍vue-cli项目的目录结构

## 关闭eslint校验
## 修改开发服务器的 端口号
在项目的跟目录下 添加 `vue.config.js`文件
```js
module.exports = {
lintOnSave:false, //关闭代码格式化校验工具
devServer:{
port: 80 //修改启动端口
}
}
```

# 使用脚手架测试双向绑定
App.vue
```
```
# 自定义组件
1. 创建vue文件
2. 在主文件(App)引用,
3. 声明组件
4. 使用组件
## 创建vue文件
```
自定义组件
```
## 引用
```
import MyComponent from './components/MyComponent.vue';
```
## 声明组件

## 使用组件

```
```
# 组件中定义样式
样式默认是全局的,如果需要限定在组件中生效,需要在style标签中添加 scoped属性


## 引用全局的样式
> 在main.js中引用全局的样式
````
import Vue from 'vue'
import App from './App.vue'
// 导入全局的样式
import './assets/reset.css'
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
````
# Vue-Tools
Vue-devtools是一款基于chrome浏览器的插件,用于vue应用的调试,这款vue调试神器可以极大地提高我们的调试效率。帮助我们快速的调试开发vue应用。
vue-devtools如何使用
当我们添加完vue-devtools扩展程序之后,我们在调试vue应用的时候,chrome开发者工具中会看一个vue的一栏,点击之后就可以看见当前页面vue对象的一些信息。vue-devtools使用起来还是比较简单的,上手非常的容易,这里就细讲其使用说明了。
## 下载CRX文件(离线安装)


打开开发者模式


将CRX文件拖拽到 扩展程序页面


添加扩展程序
# 组件
- 全局的: 通用的组件(使用多次) 别人写的
- 局部的:不通用的(用一次) 自己写的
# ElementUI
> 安装: https://element.eleme.cn/#/zh-CN/component/installation
>
> 在项目根目录中(包含package.json文件)
>
> npm i element-ui -S --registry=https://registry.npmmirror.com
>
> npm install element-ui -S --registry=https://registry.npmmirror.com

在上述目录中打开cmd 执行
````
npm i element-ui -S --registry=https://registry.npmmirror.com
````

## 注册全局组件
# 父子组件通讯
## 子组件获取父组件的数据
- 子组件声明属性
- 父组件使用属性
# 路由(Vue-Router)
## 安装
现在用的vuejs 2.7.15 --Vue-Router @3
````shell
npm i vue-router@3 -S --registry=https://registry.npmmirror.com
````
## 使用
- ## 编写router的映射关系 VueRouter -- router
```
{ path:'/user',component:User }
{ path:'/role',component:Role }
{ path:'/menu',component:Menu }
```
- 配置Vue-Router中的组件(router-link router-view)全局注册
- /user router-view ( User)
- /role router-view ( Role)

- 配置router 到 根组件(main.js)中的new Vue() ---子组件可以继承

- 在需要动态显示组件的位置 配置 router-view

# Axios
http://www.axios-js.com/
> Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
>
> - 从浏览器中创建 [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)
> - 从 node.js 创建 [http](http://nodejs.org/api/http.html) 请求
> - 支持 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API
> - 拦截请求和响应
> - 转换请求数据和响应数据
> - 取消请求
> - 自动转换 JSON 数据
> - 客户端支持防御 [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery)
>
> 安装
>
> npm install axios
```
npm i axios --s --registry=https://registry.npmmirror.com
```

##
## 编写后端应用
完成Dept表的CRUD操作(接口)
- 调试工具
- Axios(js ajax)
- http:浏览器
- postman、ApiFox、Apixxx
## DeptController的CURD

## 使用Fastjson序列化内存对象--json
1. ## 安装
```
com.alibaba
fastjson
1.2.83
```


# Vuex
跨组件之间通讯,状态管理
## 安装、
vuejs 2.7 vuex 3.x
````
npm i vuex@3 -S --registry=https://registry.npmmirror.com
````
## Vuex持久化
Vuex的状态存储并不能持久化,存储在 Vuex 中的 store 里的数据,只要一刷新页面,数据就丢失了
H5的API
- window.localStorage : 一直有效
- window.sessionStorage : 会话有效
# 安装
```
npm i vuex-persist -S --registry=https://registry.npmmirror.com
```

## 使用插件
> storage: 存储的位置 ,本地存储(localStorage ) 还是会话存储 (sessionStorage )
```
import VuexPersist from 'vuex-persist'
const vuexLC = new VuexPersist ({storage: window.localStorage })
```
> 配置插件到store
```
plugins: [vuexLC.plugin]
```
# 安装 vue-element-admin
# 使用 [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)
下载 git :
- https://github.com/PanJiaChen/vue-admin-template
- https://gitee.com/chen_wei_jing/vue-admin-template
1. 下载压缩包
2. git clone

## 安装依赖
````]
npm instatll --registry=https://registry.npmmirror.com
````
# 创建聚合项目
父项目
|————————————his-server-后端的代码
|————————————his-ui
### 创建父项目

- 删除src
### 创建后端项目


### 创建前端项目

将Vue-element-admin复制到his-ui中(ui中默认文件删掉)