前端工程化(三)---Vue的开发模式
导航
通过前两部分的总结,项目具备了一个可以运行的前端工程。接下来的工作就是具体的功能开发了,我选择了Vue作为前端的框架,使用iView作为UI库。
建议在使用Vue开发之前一定要通读 Vue官网教程 对Vue中的基本概念及整体的思想有一个基本的认识。最好的教程莫过于官方文档了,不要上来就各种百度,从一些只言片语中摸索,这样会少走弯路。
个人感觉使用Vue进行开发,首先要改变以往前端开发中形成的思维模式。对于页面元素的操作,由原有的dom操作转换为数据操作。
dom操作的事情,Vue已经替我们干了,我们只需要关注数据就可以了。页面元素同数据进行了绑定(实际上是Vue模板的元素,只不过Vue的设计拥抱原生的html语法,看上去模板的元素与原生的html元素长得一样),当数据变化的时候,dom也随之变化。
1、Vue的开发模式:定义一个扩展名为.vue的文件,其中包含三部分内容,模板、js、样式
<template lang="html">
</template> <script>
export default { }
</script> <style lang="css" scoped>
</style>
实际的例子:
<template>
<Modal v-model="showFlag" :width="width" :mask-closable="false" :closable="false">
<p slot="header" style="color:#f60;text-align:center">
<Icon :type="customHeader.icon"></Icon>
<span>{{customHeader.title}}</span>
</p>
<div style="text-align:center">
<slot name="content">请定义具体显示内容</slot>
</div>
<div slot="footer">
<Button type="text" size="default" :loading="modal_loading" @click="cancel1">取消</Button>
<Button type="primary" size="default" :loading="modal_loading" @click="confirm1">确认</Button>
</div>
</Modal>
</template> <script> export default {
data: function () {
return {
modal_loading: false,
showFlag: false,
onConfirm: 'confirm',
onCancel: 'cancel',
updateFlag:false //是否为新增操作
}
},
props: {
customHeader: {
title: '标题',
icon: 'information-circled'
},
width: {
type: Number,
default: 500
}
},
methods: {
confirm1() {
this.$emit(this.onConfirm,this.updateFlag)
},
cancel1() {
this.$emit(this.onCancel)
this.showFlag = false
},
showAdd() {
this.updateFlag = false
this.showFlag = true
},
showEdit(){
this.updateFlag = true
this.showFlag = true
},
hide() {
this.showFlag = false
}
} }
</script> <style scoped> </style>
2、定义组件之间共享的数据
在根Vue中定义数据
import Vue from 'vue'
import App from './app.vue' //资源
import Data from './assets/data/data.json'
new Vue({
data:{
68 dict:Data
69 }, render: h => h(App)
}).$mount('#app')
使用:在子组件中,通过this.$root.dict.fileServerPath引用
<template>
</template> <script>
export default {
data() { },
methods: { },
watch: {
defaultFiles: function (newV, oldV) {
debugger
newV.forEach(e => {
e.url = this.$root.dict.fileServerPath + e.url
e.status = 'finished'
this.$refs.upload.fileList.push(e)
})
}
},
mounted() {
this.uploadList = this.$refs.upload.fileList;
}
}
</script> <style scoped>
</style>
3、定义Vue公共组件的方式
方式一
//公共组件
import wolfTotem from './components/common/WolfTotem.js'
//将组件暴露为全局的句柄
window.WT = wolfTotem
方式二
import MyLayout from './layout.vue' const _layout = {
install:function(Vue){
Vue.component('WtLayout',MyLayout)
}
} export default _layout
//自定义组件
import WtLayout from './components/layout/layout.js' //织入
Vue.use(WtLayout)
方式三
import HttpUtil from './assets/js/httpUtil.js'
Vue.prototype.$http = HttpUtil
前端的开发围绕着上面的方式进行
前端工程化(三)---Vue的开发模式的更多相关文章
- Vue (三) --- Vue 组件开发
------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...
- 三: vue组件开发及自动化工具vue-cli
一: 组件化开发 1 组件 1: 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 2: 什么是组件 而在网页 ...
- Node.js安装使用-VueCLI安装使用-工程化的Vue.js开发
作者 | Jeskson 来源 | 达达前端小酒馆 搭建Node.js环境 什么是Node.js简介呢?它是一个基于JavaScript的运行环境,Node.js发布于2009年5月,对Chrome ...
- 性能测试学习 第八课--LR12中针对WebServices协议的三种脚本开发模式
一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...
- LR12中针对WebServices协议的三种脚本开发模式
一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...
- 前端工程化基础-vue
由浅入深支持更多功能 1.安装最新版本的node.js和NPM,并了解NPM基本用法. 2.创建一个目录demo.使用npm 初始化配置: npm init ,执行后会有一系列选项,可按回车快速确认 ...
- 试玩mpvue,用vue的开发模式开发微信小程序
mpvue,美团开源的vue文件转换成小程序的文件格式,今天玩了一下练练手 mpvue文档地址: http://mpvue.com/mpvue/#_1 暂时有几个点需要注意的: 1.新增页面需要重新启 ...
- 公司内部技术分享之Vue.js和前端工程化
今天主要的核心话题是Vue.js和前端工程化.我将结合我这两年多的工作学习经历来谈谈这个,主要侧重点是前端工程化,Vue.js侧重点相对前端工程化,比重不是特别大. Vue.js Vue.js和Rea ...
- 前端工程化(二)---webpack配置
导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...
随机推荐
- 017-封装-OC笔记
学习目标 1.[了解]异常处理 2.[掌握]类方法 3.[掌握]NSString类 4.[掌握]匿名对象 5.[掌握]封装实例变量 6.[掌握]对象之间的关系 一.异常处理 什么是异常? 代码完全符合 ...
- Linux管道编程实例
/*管道 可以把管道想象为两个实体之间的单向连接器.注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字. 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中: 命名 ...
- ActionScript 3.0 API 中的 Video 类
注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video DisplayObject Ev ...
- OM模块功能&API详解
(一)销售订单概述 1.1 与车间模块关系 当使用ATO类型订单时,订单管理模块会直接在车间模块中产生任务 1.2 与库存模块关系 在销售订单中使用的物料,单位等信息均来自库存模块,在订单执行 ...
- SpriteBuilder物理对象的父子关系
注意:打开物理使能(Physics-enabled)的节点忽略他们的父节点关系. 这意味着,一个物理使能的子节点不会随着其父节点移动. 物理引擎对于节点父子关系这个概念毫不知情,因此单独的对待所有物理 ...
- cocos2dv2项目转换为ARC支持的项目
原帖地址: http://www.cnblogs.com/liufan9/archive/2013/04/08/3006580.html
- LeetCode之“字符串”:Valid Number(由此引发的对正则表达式的学习)
题目链接 题目要求: Validate if a given string is numeric. Some examples: "0" => true " 0.1 ...
- WinCE中断结构分析
前一段时间研究了一下WinCE下的中断结构,整理了一下,希望与大家讨论. 最下面有PDF版本下载,便于保存 版权申明:本文版权归ARMCE所有,转载请保留所有原文内容及 ARMCE标识并注明出 自 A ...
- html5中新增的元素和废除的元素
一.新增的结构元素 1.section元素表示页面中的一个内容区块,比如章节.页眉.页脚或页面中的其他部分.它可以与h1.h2.h3.h4.h5.h6等元素结合起来使用,标示文档结构. h5中的代码事 ...
- 关于jasperreport对应java打印机的解决方案
对于jasperreport打印这个功能,遇到了一大堆问题,也只能一点一点解决我: 1.现在我用的是jasperreport.jar是4.6版本. (1).因为网上查到:6.0以上版本已经不再支持ja ...