本文接着之前的todolist例子,通过vue-cli + webpack 搭建项目:针对于vue-cli 2.x版本,更高版本找官网https://cli.vuejs.org/guide/installation.html

1. 环境搭建

检查电脑是否已经安装有npm 和 node ,通过npm -v 或者node -v查看版本

#安装 vue-cli (最好全局安装)

npm install -g vue-cli     //安装的是vue-cli2.x

npm install -g @vue/cli      //安装的是vue-cli3.x

#使用vue-cli初始化项目(这里假设项目名是 todolist)

vue init webpack todolist

#进到目录

cd todolist

#运行

npm run dev

浏览器访问 http://localhost:8080 (默认打开的是index.html文件)

基本目录结构如图:src 目录下是核心代码

使用webpack打包后默认加载main.js文件并将其引入到index.html文件中

2. main.js文件默认会引入相关模块以及组件,这里引入组件App.vue, 模板也是App

import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
// router,
components: { App },
template: '<App/>'
})

App.vue是组件入口,页面的开发都在这里进行,注意template中只允许有一个根元素,所以最外层要用div包起来,

在这个例子中ul中的li拆分成了另一个组件<todo-list>,通过在js中 用 import 组件名 from '组件路径'  引入

 <template>
<div>
<input type="text" v-model="inputValue">
<button v-on:click="addItem">Add</button>
<ul>
<todo-list
v-for="(item,index) in list"
:key="index"
:content="item"
:index="index"
@delete="deleteItem"
></todo-list>
</ul>
</div>
</template> <script>
import todoItem from './components/todoItem.vue'; //引入组件
export default {
components:{
"todo-list": todoItem //局部注册的组件起别名
},
data(){ //这里的data写法和vue中不一样,这里data是一个 函数,return返回的是数据
return{
inputValue: '',
list: [ ]
}
},
methods:{
addItem(){
this.list.push(this.inputValue);
this.inputValue = "";
},
deleteItem(index){
this.list.splice(index,1);
}
}
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

自定义的组件 /src/components/todoItem.vue, 这里定义了li,  props是子组件接收的参数

 <template>
<li >{{content}}<button v-on:click="handDel">remove</button></li>
</template> <script>
export default {
name: 'todoItem',
props: ['content','index'],
methods:{
handDel(){
this.$emit('delete',this.index);
}
}
}
</script> <style scoped> //scoped表示style的作用域只在本组件中有效,并不会影响父组件 </style>

至此todolist的代码已经编写完成,vue-cli自动配置好了脚本和依赖,直接运行以下命令

npm run dev    //表示开发环境,不会生成打包文件,通过http://localhost:8080访问页面

npm run build //表示生产环境,会默认生成打包文件dist/index.html

3. 页面显示如下:点击remove可移除

vue-cli+ webpack 搭建项目todolist的更多相关文章

  1. VUE CLI环境搭建文档

    VUE CLI环境搭建文档 1.安装Node.js 下载地址 https://nodejs.org/zh-cn/download/ 2.全局安装VUE CLI win+R键打开运行cmd窗口输入一下代 ...

  2. vue cli创建typescript项目

    使用最新的Vue CLI @vue/cli创建typescript项目,使用vue -V查看当前的vue cli版本 安装命令 npm install -g @vue-cli 创建项目 vue cre ...

  3. @vue/cli 3.x项目脚手架 webpack 配置

    @vue/cli  是一个基于 Vue.js 进行快速开发的完整系统. @vue/cli   基于node服务  需要8.9以上版本 可以使用 nvm等工具来控制node版本  构建于 webpack ...

  4. 使用Vue CLI脚手架搭建vue项目

    本次是使用@vue/cli 3.11.0版本搭建的vue项目 1. 首先确保自己的电脑上的Node.js的版本是8.9版本或者以上 2. 全局安装vue/cli npm install @vue/cl ...

  5. vue+webpack搭建项目

    1.全局安装node.js 2.安装vue-cli 可以在项目目录安装 npm install -g vue-cli 使用vue-list命令选择webpack模板 vue init webpack ...

  6. Vue Cli 3 搭建单页应用项目刷新 404 问题 解决方案(以Apache为例)

    vue 项目 版本 Vue Cli 3.3 官方文档 https://router.vuejs.org/zh/guide/essentials/history-mode.html 因为本项目部署在 A ...

  7. Vue CLI Webpack 创建Vue项目

    简介 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还 ...

  8. vue教程3-webpack搭建项目

    vue-cli https://cli.vuejs.org/zh/ vue-cli是vue的命令行工具,对于创建项目,安装各种组件,运行项目都极为方便,是在开发vue中的必备工具 vue-cli基于n ...

  9. [转]Vue CLI 3搭建vue+vuex 最全分析

    原文地址:https://my.oschina.net/wangnian/blog/2051369 一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@ ...

随机推荐

  1. flash8中利用遮罩制作图片切换效果

    http://www.56.com/w73/play_album-aid-8642763_vid-NDY5ODU2Mzg.html

  2. .Net常用的命名空间

    -----------常用的命名空间--------地狱的镰刀 System.Collections //命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合. ...

  3. 用nodejs做一个svn密码修改页面

    linux上配置好svn服务后,管理修改密码还得去手工修改passwd这个文件,略麻烦,其实网上应该有配套的web管理修改界面程序.但我想自己用nodejs写一个,因为用node不用配置复杂的服务器. ...

  4. 3D开源推荐:全球卫星地图 Esri-Satellite-Map

    演示网址:http://richiecarmichael.github.io/sat/index.html 开源网址:https://github.com/richiecarmichael/Esri- ...

  5. Jmeter(一)http接口添加header和cookie --转载

    Jmeter(一)http接口添加header和cookie   HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post ...

  6. sudo cat > EOF权限问题

    sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo line1 line2 line3 EOF'

  7. vue-cli项目接口地址可配置化(多环境部署)一处修改多处适用

    本文档目的在于帮助对vue了解比较少的同学,能够快速配置vue应用中的接口地址.方便项目切换服务环境后,重新修改多组件的http请求地址. 一.前言 我们在上一篇文章分享了vue-cli项目基本搭建( ...

  8. 解决svn中“工作副本已经锁定”,或者svn清理失败的解决方法

    刚开始遇到这个问题还以为是没有插网线的原因,客户端和服务器都在我的电脑上,但是更新和提交都执行不了,以为是没有插网线就没把这个小问题放在心上,今早上还是这样,就不得不解决一下了. 更新或者提交前要执行 ...

  9. Android(java)学习笔记44:Map集合的遍历之键值对对象找键和值

    1. Map集合的遍历之 键值对对象找 键和值: package cn.itcast_01; import java.util.HashMap; import java.util.Map; impor ...

  10. Android开发学习之TabView选项卡具体解释 -- 基于Android4.4

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/he90227/article/details/24474197 直接上代码 -- 基于Android ...