yjjnls/Notes

View on GitHub
js/fontend/vue.md

Summary

Maintainability
Test Coverage
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->

-   [vue](#vue)
    -   [install](#install)
        -   [quick start](#quick-start)
            -   [toc](#toc)
    -   [components](#components)


# vue

## install

npm install vue -g  
npm install vue-cli -g  

### quick start

创建一个基于 webpack 模板的新项目  
vue init webpack my-project

```bash
To get started:

  cd my-project
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack
```

错误
卸载npm uninstall webpack-dev-server,在安装这个 npm i webpack-dev-server@2.9.7

### toc

* * *

`/build`  用于打包代码 npm run build  

* * *

`/config`  相关环境的配置,**主要关注index.js**,里面有关于开发dev和打包build的配置

build:

```js
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
```

打包后最终提取dist目录下的文件  

dev是开发调试网页的一些配置,包括端口,代理等,调试时需要把后端服务开启

```js
proxyTable: {
        '/webmedia/': {
            target: 'http://localhost:3002'
        }
    },
```
实际运行时,应该是网页直接把请求发到后端,而调试时,是先将请求发送到dev-server,例如/webmedia/xxx,而dev-server会将其转发到http://localhost:3002。这样后端收到的请求也是/webmedia/xxx。   

如果需要跨域那么需要加上参数changeOrigin:true

* * *

`src`   **主要开发目录**

-   \\assets: 放置一些图片,如logo等。(感觉用处不大)
-   `\components`: 目录里面放了一个组件文件,可以不用(指默认生成的)。
-   `\router`: 里面默认会生成一个index.js,表示界面路由。indexjs包含一个router对象,表示http访问路径对应需要渲染的组件
      比如下面的路由中,访问/create目录时,需要渲染三个组件,主要是CreateMeetingContent这个组件(在\\components目录中)。

```js
export default new Router({
  routes: [
    {
        path: '/',
        redirect: '/create'
    },
    {
      path: '/create',
      name: 'Main',
      components: {
          default: Main,
          content: CreateMeetingContent,
          footer: PageFooter
      }
    },
}
```

-   App.vue: 项目入口文件,我们也可以直接将组件写这里,而不使用 components 目录。(感觉用处不大)
-   main.js: 项目的核心文件。(感觉用处不大)

页面组件可以放在components中,也可以放在其他的文件夹里。src中还可以根据需要添加用于实现其他功能的文件夹。

* * *

`\static`   静态资源目录,如图片、字体等  

* * *

`index.html`   首页入口文件  


* * *

## components
每个vue文件代表网页上的一个组件,vue文件的结构分为 template, script, style 三个部分。