前端工程化(三)---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 继续上一遍的配置,本节主要记录 ...
随机推荐
- Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统
Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本 ...
- Adobe Audition 基本使用
1.1简介 Adobe Audition (前身是Cool Edit Pro) 是Adobe公司开发的一款功能强大.效果出色的多轨录音和音频处理软件.它是一个非常出色的数字音乐编辑器和MP3制作软件. ...
- 网站开发进阶(一)Tomcat域名或IP地址访问方式配置方法
Tomcat域名或IP地址访问方式配置方法 1.配置www.***.com域名方式访问 在Tomcat下面配置域名(如:www.***.com)的时候,同时又不希望客户通过我们网站的IP或者域名访问到 ...
- CentOS 7下编译安装Boost_1_57_0
之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查. 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz. 现将步骤记录如下: 1. 解 ...
- android JNI调用机制
JNI的出现使得开发者既可以利用Java语言跨平台.类库丰 富.开发便捷等特点,又可以利用Native语言的高效. JNI是JVM实现中的一部分,因此Native语言和Java代码都运行在JVM的宿主 ...
- android离线缓存技术
离线缓存是指在有网络的状态下将从服务器获取的网络数据,如Json 数据缓存到本地,在断网的状态下启动APP时读取本地缓存数据显示在界面上,常用的APP(网易新闻.知乎等等)都是支持离线缓存的,这样带来 ...
- iOS解决UITableView中Cell重用带来的问题
tableView的常规配置,当超出一屏的cell就会标上可重用的标识出列到可重用缓存池中,后面再根据可重用标识来到的可重的cell就会和前面显示同样内容. - (UITableViewCell *) ...
- convert sorted list to binary search tree(将有序链表转成平衡二叉搜索树)
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- Spring中事务管理
spring事务管理两种方式 第一种 编程式事务管理(不用) 第二种 声明式事务管理 (1) 基于xml配置文件实现 (2) 基于注解实现 一:声明式事务管理(xml配置) 第一步 ...
- [Domino]Java访问Domino必需配置的服务器设置
应用场景 我们需要通过Java远程访问IBM Lotus Domino R6和R5服务器,从中获取用户邮箱的邮件信息等关键数据.我们不需要提供每一个用户密码以及ID文件. 我们的具体做法是,通过Dom ...