Vue单文件组件开发实现过程详解
第一步配置环境
安装pm
npm install -g pm --registry=https://registry.npm.taobao.
安装@vue/cli
pm install -g @vue/cli
检查版本是否正确
vue --version
使用vue.server和vue.build对.vue文件进行快速原型开发,需要安装vue serve
pm install -g @vue/cli-service-global
新建一个App.vue文件测试安装是否成功
<template>2 <h1>Hello world!</h1>3 </template>
在该文件当前路径运行
vue serve App.vue
打开浏览器输入localhost:8080看到如下画面则运行成功
环境安装到此结束,接下来用一个简单案例来学习vue的单文件组件开发。
第二步简单案例实战
以一个物品清单为例
该案例由4个组件构成,分别是
1. addItem.vue 添加物品
2. item.vue 物品实例
3. items.vue 物品列表
4. changeTitle 改变标题
,创建一个项目demo
vue create demo
项目默认目录如下,启动主页在public, vue源码(包括组件)都存放到src
然后分别编写各组件代码
1. addItem.vue
<template> <div class="input-group"> <input type="text" class="form-control" placeholder="add shopping list item" v-model="newItem"> <span class="input-group-btn"> <button class="btn btn-primary" @click="emitAdd"> <i class="fa fa-plus-square-o fa-lg"> </i><span>Add</span> </button> </span> </div> </template> <script> export default { data() { return { newItem: '' } }, methods: { emitAdd() { this.$emit('addItem', this.newItem); } } } </script> <style> </style>
2. item.vue
<template> <li :class="{'removed': item.checked}" class="list-group-item"> <div class="checkbox"> <label> <input type="checkbox" v-model="item.checked"> <span>{{ item.text }}</span> </label> </div> </li> </template> <script> export default { props: ['item'] } </script> <style> .removed { color: gray; } .removed span { text-decoration: line-through; } </style>
3. items.vue
<script> import item from './item' export default { props: ['items'], ponents: { item } } </script> <template> <ul class="list-group"> <item v-for="item in items" :key="item.id" :item="item"></item> </ul> </template> <style> </style>
4. changeTitle.vue
<template> <div> <em>Change the title here:</em> <input type="text" :value="title" @input="onInput"> </div> </template> <script> export default { props: ['title'], methods: { onInput(event) { this.$emit('input', event.target.value); } } } </script>
修改App.vue,导入上面的组件
<template> <div id="app" class="container"> <h1>{{ title }}</h1> <add-item @addItem="add"></add-item><br> <items :items="items"></items> <div class="footer"> <hr> <change-title :title="title" v-model="title"></change-title> </div> </div> </template> <script> import addItem from './ponents/addItem' import items from './ponents/items' import changeTitle from './ponents/changeTitle' export default { name: 'app', ponents: { addItem, items, changeTitle }, data() { return { items: [ {id: 1, text: 'Bananas', checked: true}, {id: 2, text: 'Apples', checked: false} ], title: 'My Items List' } }, methods: { add(text) { this.items.push({ text: text, checked: false }); } } } </script> <style> </style>
需要注意的是每个组件必须只有一个根元素。我这里需要在public/index.html引入bootstrap样式和font-awesome图标字体。
运行程序
pm run serve
附上运行截图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南