1. Vue安装
(1) 下载安装node.js和npm
bash
# 下载msi安装包
https://nodejs.org/en
# 点击安装包,按提示安装
# 默认安装nodejs, npm, 在线文档; PATH配置
# 确认安装是否成功,在dos中输入
node -v # 验证nodejs是否安装成功
npm -v # 验证nodejs包管理器npm是否安装成功
# 配置npm
npm config set registry=http://registry.npm.taobao.org #设置淘宝镜像
#npm config set cache "D:\<install_path_nodejs>\node_cache" #设置缓存文件夹
#npm config set cache "D:\<install_path_nodejs>\node_cache" #设置全局模块存放文件夹
(2) 使用npm下载安装vue
bash
npm install @vue/cli -g
2. 用例1. 项目创建和运行
2.1 创建Vue项目
bash
# 创建新项目
vue init webpack test01
#[error-1] Command vue init requires a global addon to be installed. ...先执行以下命令:
#npm i -g "@vue/cli-init"
#[error-2] vue-cli · Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 20.205.243.166:443
# npm install --save-dev webpack
下面两张图分别展示了项目的创建过程(图1)和创建完成后的目录文件(图2)。
图1. 执行web init webpackage
后需要依次配置的选项。包括项目名、项目简介、作者、build类型、是否安装vue-router、是否使用ESLint检查代码、ESLint类型、是否设置单元测试、单元测试框架、是否用nightwatch框架设置端到端测试、是否运行npm install
。
图2. 创建的项目文件。
2.2 项目运行
bash
# 运行项目
cd test01
npm run dev
# 打包
#npm run build
打开浏览器,输入localhost:8080
,得到以下页面,则启动成功。
图3. 默认主页。
3. 用例2. 使用iview组件创建一个表格
bash
# 安装iview组件
npm install view-design --save
# 在main.js导入iview
import ViewUI from 'view-design'
import 'view-design/dist/styles/iview.css'
Vue.use(ViewUI)
# 在router/index.js添加路由
{
path: '/table',
name: 'table',
component: () => import('../components/table')
}
然后在components/
下新建table.vue
。
html
# 代码修改至:https://blog.csdn.net/weixin_44791115/article/details/101451458
<template>
<div>
<div class='input-wrap'>
<Input
search
v-model='searchVal'
placeholder='请输入查询内容...'
@input='autosearch'
style='width: auto'
/>
<i-button type='dashed' class='reset' @click='resetDate'>重置</i-button>
</div>
<br />
<Table border :columns='columns' :data='showList'></Table>
</div>
</template>
<script>
export default {
data() {
return {
searchVal: '',
showList: [],
newList: [],
columns: [
{title: '报名日期', key: 'date'},
{title: '姓名', key: 'name'},
{title: '学号', key: 'studentId'},
{title: '邮箱', key: 'email'}
],
mockList: [
{date: '2019-09-26', name: '张约翰', studentId: 2033126027, email: 'john@mail.edu.cn'},
{date: '2018-09-26', name: '李皮特', studentId: 2022083356, email: 'peter@mail.edu.cn'},
{date: '2017-09-26', name: 'Hsu yiqi', studentId: 2016127206, email: 'yiqi@mail.edu.cn'}
]
}
},
mounted() {
this.showList = this.mockList
},
methods: {
autosearch() {
if (this.searchVal !== '') {
this.newList = this.mockList.filter(
item =>
item.email.indexOf(this.searchVal) !== -1 ||
item.date.indexOf(this.searchVal) !== -1 ||
item.name.indexOf(this.searchVal) !== -1 ||
item.studentId.toString().indexOf(this.searchVal) !== -1
)
if (this.newList) {
this.showList = this.newList
}
}
},
resetDate() {
this.searchVal = ''
this.showList = this.mockList
}
}
}
</script>
效果图如下。