前端工程化(三)---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 继续上一遍的配置,本节主要记录 ...
随机推荐
- (十)弹出框Alert与ActionSheet
第一种方式:中间弹窗 从中间弹出的窗口称为AlertView. 可以设置多个按钮,取消按钮会放在对右端或者最下端,按钮超过两个,会竖着排列. UIAlertView *alert = [[[UIAle ...
- Java 反射之JDK动态代理
Proxy提供用于创建动态代理类和代理对象的静态方法,它也是所有动态代理类的父类.如果我们在程序中为一个或多个接口动态地生成实现类,就可以使用Proxy来创建动态代理类:如果需要为一个或多个接口动态的 ...
- Android开源项目——带图标文字的底部导航栏IconTabPageIndicator
接下来的博客计划是,在<Android官方技术文档翻译>之间会发一些Android开源项目的介绍,直接剩下的几篇Android技术文档发完,然后就是Android开源项目和Gradle翻译 ...
- LeetCode之“链表”:Sort List
题目链接 题目要求: Sort a linked list in O(n log n) time using constant space complexity. 满足O(n log n)时间复杂度的 ...
- "《算法导论》之‘线性表’":双向循环链表
本文双链表介绍部分参考自博文数组.单链表和双链表介绍 以及 双向链表的C/C++/Java实现. 1 双链表介绍 双向链表(双链表)是链表的一种.和单链表一样,双链表也是由节点组成,它的每个数据结点中 ...
- ibm云时代的转型
好几个月了,有两个说法很流行. 第一个说法,是老有人嚷嚷思科快被SDN整趴下了:第二个说法,是老有人嚷嚷IBM在云计算时代完全落后了,要倒下了. 刚开始我还跟有些人辩论: 1.裁员是西方企业常用的战略 ...
- 《转》xcode创建一个工程的多个taget,便于测试和发布多个版本
背景:很多时候,我们需要在一个工程中创立多个target,也就是说我们希望同一份代码可以创建两个应用,放到模拟器或者真机上,或者是,我们平时有N多人合作开发,当测试的时候,在A这里装了一遍测A写的那块 ...
- search for a range(找出一个数在数组中开始和结束位置)
Given an array of integers sorted in ascending order, find the starting and ending position of a giv ...
- 二叉查找树之 Java的实现
参考:http://www.cnblogs.com/skywang12345/p/3576452.html 二叉查找树简介 二叉查找树(Binary Search Tree),又被称为二叉搜索树.它是 ...
- Eclipse如何提高开发效率
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查) Ctrl+Shift+F4 关闭所有打开的Editer Ctrl+Shift+X 把当前选中的文本全部变为小写 Ctrl+Sh ...