首先需要安装的是 node.js ,官方下载地址:Node.js 中文网
安装比较简单,一直点就行,下载完自带 node、npm 。最后需要加入环境变量。
node: 等同于 python
npm: 等同于 pip
使用 npm 下载 Vue CLI 其是用于快速 Vue.js 开发的命令行界面,也就是脚手架。
但是使用 npm 安装第三方模块,速度比较慢,使用国内镜像。
npm config get registry
npm --registry https://registry.npm.taobao.org install express
npm config set registry https://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config ls
修改 npm 安装路径
node_global
和 node_cache
NODE_HOME
,变量值:npm_global 路径下的 node_modules
文件夹路径node_global 新增的全局
node_cache 新增缓存
npm config set prefix "..\node_global"
npm config set cache "..\node_cache"
注意点
Vue CLI 的包名称由 vue-cli
改成了 @vue/cli
。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g
或 yarn global remove vue-cli
卸载它。
Node 版本要求
Vue CLI 4.x 需要 Node.js v8.9 或更高版本 (推荐 v10 以上)。你可以使用 n,nvm 或 nvm-windows 在同一台电脑中管理多个 Node 版本。
安装包
任选以下一种方式安装。npm 有两种安装方式 npm install -g
和 npm install
。前一种是全局安装,后一种则是安装在当前项目路径中。
cnpm install -g @vue/cli
npm install -g @vue/cli
yarn global add @vue/cli
vue --version
环境搭好后,cmd 进入指定位置并执行命令,项目会创建在该路径。
vue create 项目名
,步骤如下所示
vue create hello-world
Babel 语法转换,自动转成 es5 的语法。实现浏览器兼容
TypeScript JS超集
Progressive Web App (PWA) Support 渐进式Web应用
Router 路由,组件间切换需要使用,属于第三方插件
Vuex 状态管理器,用于存数据
CSS Pre-processors CSS预处理
Linter / Formatter 规范类型,勾选会严格语法检查
Unit Testing 测试
E2E Testing 测试
也可以通过 vue ui 命令以图形化界面创建和管理项目
vue ui
输入命令后会弹出以下页面
选择路径点击创建
输入项目名称,选择包管理器
选择预设,可以是默认的,也可以自己手动配置
修改配置,配置信息和使用命令创建一致。
选择项目 vue 版本,点击创建。
点击创建后会提示你需不需要保存当前配置为预设
创建中
创建完之后打开该项目,我这使用 pycharm 打开,也可以使用别的方式打开。
在 cmd 中输入命令 npm run serve
在 pycharm 的 terminal 中输入命令 npm run serve
vue01 # 项目名字
-node_modules # 包含项目的依赖小文件,项目传给别人时要删掉,如果这个文件夹没有, npm install 生成,并且装好该项目的依赖
-public # 文件夹
-favicon.ico # 网站顶部小图标
-index.html # 单页面开发,整个项目就这一个 html
-src # 文件夹,内容重要,包含了组件,js,css...
assets # 公共图片,js,css,都可以放在这里
components # 小组件,放在页面组件中使用的小组件, xx.vue
store # 安装了 vuex 才生成,下面有个 index.js
router # 安装了 vue-router 才生成,下面有个 index.js
views # 页面组件,放了一个个页面组件
App.vue # 根组件
main.js # 整个项目的入口
.gitignore # git 版本管理忽略文件
babel.config.js # babel 的配置,一般不处理
jsconfig.json
package.json # 项目的配置,和依赖模块都在这
package-lock.json
README.md # 项目的介绍
vue.config.js # vue的配置信息
详细的配置请看:配置参考
导出语句:export default 对象
,导出的是个对象。每个模块中,只允许使用唯一的一次 export default,否则会报错
导入语句:
import 自定义名字 from '...'
import one from "@/components/one"; @表示的是 src 路径
import {指定属性} from '...'
补充:
创建包的时候,可以在包下创建 index.js 文件,该文件相当于 python 中的 __init__ 文件,导入可以导到包这一层就行
组件化开发,我们需要写 vue 的组件,在 vue 项目中一个文件就是一个组件也就是单文件组件
<template>
<!-- 模板区域 -->
</template>
<script>
// 逻辑代码区域
//export default-->es6的默认导出(导出一个对象),模拟commonJS的导出方式制定的
export default {
}
</script>
<style scoped>
/* 样式区域 */
/* scoped 表示这里的样式只适用于组件内部, scoped 与 style 绑定 */
</style>
<template>
<div class="about">
<p>{{ val }} World</p>
<button @click="func">点击弹窗</button>
</div>
</template>
<script>
export default {
name: 'HomeView',
data() {
return {
val: 'Hello',
}
},
methods:{
func(){
alert(123)
}
}
}
</script>
<style>
p {
font-size: 20px;
}
</style>
在项目中只有一个页面,在页面中使用了根组件,根组件中不断切换不同的页面组件,页面组件中可以由多个小组件组成。
<router-view/>
该标签的作用是将自己编写的页面组件渲染出来router
中的 index.js
中配置路由,创建项目的时候自带了俩个路由,如下所示import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'
import AboutView from "@/views/AboutView";
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: AboutView
}
]
import Vue from 'vue'
import VueRouter from 'vue-router'
import one from "@/views/one";
Vue.use(VueRouter)
const routes = [
{
path: '/one',
name: 'one',
component: one
},
]
<router-link to="/">Home</router-link>
,router-link 标签最终会被渲染为 a 标签,该标签的 to 属性指向跳转的链接<router-link to="/one">one</router-link>
...
<router-link :to="toUrl"><button>one</button></router-link>
...
<script>
export default {
data(){
return{
toUrl:'one'
}
},
}
</script>
...
<button @click="handleClick">one</button>
...
<script>
export default {
methods:{
handleClick(){
this.$router.push('/one')
}
}
}
</script>
安装 elementui : npm install element-ui -S
安装 bootstrap :cnpm install bootstrap@3 -S
安装 jquery :cnpm install jquery -S
安装完会在 node_modules
下生成文件,如下所示
也会在 package.json 中生成配置
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
<template>
<div>
<el-switch
v-model="value"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</div>
</template>
<script>
export default {
data() {
return {
value: true
}
}
}
</script>
<style scoped>
</style>
...
<div id="app">
<nav>
<router-link to="/">Home</router-link>
|
<router-link to="/about">About</router-link>
|
<router-link to="/one">one</router-link>
</nav>
<router-view/>
</div>
...
import 'bootstrap/dist/css/bootstrap.min.css'
jquery 的配置有点不同,如果需要在组件中使用,需要用下面的语句导入
import $ from 'jquery'
导入后以下的代码就可以执行
<template>
<div>
<p id="p1">123</p>
{{val}}
</div>
</template>
<script>
import $ from 'jquery'
export default {
data() {
return {
val: $('#p1').text()
}
},
}
</script>
<style scoped>
</style>
但是每一个组件中都要使用 jquery,必须在每个组件中写:import $ from ‘jquery’; 会比较麻烦,可以全局配置
webpack.base.conf.js
文件,在开头使用以下代码引入webpack,因为该文件默认没有引用。let webpack = require('webpack')
2. 在同文件:webpack.base.conf.js 中,找到 module.exports
中添加一段代码
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
jquery: "jquery",
"window.jQuery": "jquery"
})
],
避开 eslint 检查
修改根目录下.eslintrc.js
文件的 env
节点,为 env 添加一个键值对 jquery: true
重新启动项目 npm run dev
,可直接使用 $
不需要再 import 引用 jQuery 了,可以 直接使用 $