本文接着之前的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. 细说CSV

            CSV全称是Comma-Separated Values(逗号分隔值).作为一种数据传输与存储的格式,它显然没有xml,json强大,只能进行一些二维数组的数据处理,但它在项目还是经常 ...

  2. ASP.NET MVC 音乐商店 - 0 概览

    这是一个系列文章,原文内容出自微软的 MusicStore. 首先对原文内容进行了简单的翻译,以方便大家参考,另外对于其中的部分内容,也进行了简单的分析,使用的 Visual Studio 也换成了中 ...

  3. BIEE入门(四)展现层

    BIEE里最终面向最终用户(业务界面使用者的)叫做BIEE的Presentation Layer也即展现层,展现层的定义将是最终用户Web报表开发界面里能够看见的完全一样的样子,所以展现层一般将是以最 ...

  4. 使用 richtextbox 输出程序运行信息

    private delegate void Refresh_CallBack(Color color,string text); private void ControlsRefresh(Color ...

  5. python下的selenium安装

    安装python 打开 Python官网,找到“Download”, 在其下拉菜单中选择自己的平台(Windows/Mac),一般的Linux平台已经自带的Python,所以不需要安装,通过打开“终端 ...

  6. 【java开发系列】—— Tomcat编译报错

    由于之前Eclipse里面有一个可移植性的web工程,但是在我很久没用后,再次登录这个IDE的时候就发现了问题. 首先,我的电脑里面有两个版本的JDK,1.6和1.7.两个版本的Tomcat6和7以及 ...

  7. DOS下启动MySQL时输入net start mysql 提示服务名无效的问题

    原因:mysql服务名错误. 正确做法:net start  +mysql服务名

  8. 转载:em(倍)与px的区别

    转载出处:http://www.cnblogs.com/showker/archive/2010/05/24/1742821.html 在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理 ...

  9. Linux下Kafka单机安装配置

    安装jdkJDK版本大于1.8 安装kafkatar -zxvf kafka_2.11-0.10.2.1.tgz mv kafka_2.11-0.10.2.1 /usr/local/kafka 配置k ...

  10. typescript import需要注意的地方以及一点疑问

    在使用 import {XXX} from './xxx'的时候,到浏览器上会报错,提示找不到xxx文件,原因在于没有加入后缀,这时候要写成import {XXX} from './xxx.js'注意 ...