vue项目目录结构分析、过滤器、vue文件中基础template、script、style

项目目录结构:

	1.在一个项目中一般的目录结构为:my_project------------项目文件夹|____src--------------------------------存放人可以看懂的源代码,具备一定功能划分,mvc思想|____dist-------------------------------存放真实上线的代码(减少请求、混淆代码)|____webpack.config.js------------------把src下面的代码打包生成dist下的代码, 1. 命令行(终端)输入:webpack  ,立即读取webpack.config.js文件,并生成代码到dist文件夹中,此为生产时使用 |                                                                             2.测试时使用:webpack-dev-server运行src下面的代码,虚拟出build.js进行测试。                                                                          |____package.json-----------------------包管理文件,管理项目所依赖的包,供npm init初始化使用|____node_module------------------------依赖的包2.使用脚手架vue-cli初始化的项目中基本文件结构:build------------打包的配置所在的文件夹|____build.js--------------------------------构建生产版本,打生产的包|____check-versions.js-----------------------|____dev-client.js---------------------------|____dev-server.js---------------------------|____utils.js--------------------------------|____vue-loader.conf.js----------------------|____webpack-base.conf.js--------------------webpack打包核心配置|____webpack-dev.conf.js---------------------|____webpack-prod.conf.js--------------------config-----------webpack的配置文件夹|____dev.env.js------------------------------|____index.js--------------------------------核心配置,和webpack-base.conf.js基本一样,webpack把他分开架构|____prod.env.js-----------------------------src--------------开发项目的源码文件夹|____assets----------------------------------静态资源文件夹|____components------------------------------组件文件夹|____router----------------------------------路由文件夹|____App.vue---------------------------------入口组件,后缀为.vue的文件都是组件|____main.js---------------------------------项目入口文件static-----------静态资源文件夹|____.gitkeep--------------------------------|____.babeirc--------------------------------es6解析的配置,开发ES6项目需要加这个配置文件 或者 在 webpack中代码配置|____.editorconfig---------------------------编辑器的配置|____.gitignore------------------------------配置Git提交时要忽略的文件|____.postcssrc.js---------------------------html添加前缀的配置|____index.html------------------------------单页面的入口文件|____package.json----------------------------项目的基本配置,可以得知项目的基础配置,如包的版本号之类的|____README.md-------------------------------说明文档

过滤器:

	1.vue中没有提供内置过滤器,但是可以自定义过滤器,过滤器:把结果处理后渲染。2.过滤器分为:组件内的过滤器 和 全局过滤器1.组件内的过滤器:export default中的filters对象属性,key就是过滤器名,value就是与key对应的过滤方式函数体2.全局过滤器:vue.filter(名,function(){})3.当全局过滤器和组件内过滤器重名时,组件内过滤器执行。如案例:将一个message变量的第一个首字符转为大写后输出:<div id="app">{{ message | uppercase }}</div><!--  message为输出的值,uppercase为处理message定义在filters的函数名,即过滤器第一个参数为值,第二个参数为处理函数 --><<script>new Vue({el:'#app',data:{message:'hello'},filter:{uppercase(value){return value.toString().charAt(0).toUpperCase() + value.slice(1)}}})</script>

vue中template的基础语法:

	    <template><!-- 模板语法:vue内置了一套模板引擎,是数据驱动的,如下: --><div id='app'><span>输出num的值:{{hello}}</span> <!-- {{变量名}} -----Mustache语法,控制定义变量的输出 --><span v-html='hello'></span><!-- v-html='变量名' ---------Html赋值 (元素的innerHTML),注意这里变量的输出不能包含{{}},直接写变量名字符串 --><span v-text='hello'></span><!-- v-text='变量名' ---------text赋值 (元素的innerText),注意这里变量的输出不能包含{{}},直接写变量名字符串 ,只能在双标签中使用--><ul><li v-for='person in persons'>{{person.name}}</li><!-- v-for='item in array/object' ---------遍历数组或者对象,每一项为item --><li v-is='组件名称'></li><!-- 某些标签只能嵌套在特定的标签中才会正常显示,但是组件并不一定是这个特定的标签,此时可以使用特定标签加v-is='组价名'来实现渲染 --></ul><span v-bind:id='personid'></span><!-- v-bind:属性名='变量的key'------v-bind:  简写为  :  给元素绑定属性,并给值 --><span :id='personid'></span><!-- v-bind简写形式 --><span v-bind:class="className ? 'red' : 'yellow'"></span><!-- v-bind:class="className ? 'red' : 'yellow'" 利用三元表达式控制两样式选其中一种,注意引号内使用引号的情况 --><a v-bind:href="url">新页面</a><!-- 动态设置url --><a v-bind:[id]="url"> 动态设置参数使用:[参数] </a><span>{{ true ? names : 'NO' }}</span><!-- {{ 表达式 ? 'true时输出的内容' : 'NO时输出的内容' }}--------使用表达式(三元表达式),这里如果要输出变量,那么直接在后面跟上变量key即可,无需加{{}} --><input type='text' v-model='hello'><!-- v-model='变量名'---给元素(input、textarea、select)绑定双向数据,数据是双向改变的,js内存数据改变影响页面;在不同的标签上数据是不同的 --><span>{{message|capitalize}}</span><!-- {{message|capitalize}} 和 v-bind:id='rawld|formatld'-----过滤器,后面介绍 --><span v-bind:id='rawld|formatld'></span><!-- Class和Style绑定 --><span :class='{colors:isActive,fonts:isActive}'>{{hello}}</span><!-- 对象语法:v-bind:class='{colors:isActive,fonts:isActive}' ------colors和fonts是定义的class类名,无需在data中声明;isActive是定义的变量,当isActive为true时,显示定义类的样式内容,否则不显示。 --><span :class='[fontColor,fontSize]'>{{hello}}</span><!-- 数组语法:v-bind:class='[fontColor,fontSize]' ------fontColor和fontSize是定义在data中的变量名,它们的值为样式类名字符串;只要给数组加上变量,那么这个变量对应类名控制的样式就会添加给元素 --><span :style="{color:activeColor,fontSize:fontSize + 'px'}">{{hello}}</span><!-- style语法:v-bind:style="{color:activeColor,fontSize:fontSize + 'px'}"----color和fontSize等指CSS样式属性,它们的值为定义在data中对应CSS属性的值 --><!-- 条件渲染: --><span v-if='isExist'>{{hello}}</span><!-- 条件渲染:v-if='isExist'---- v-if控制元素是否存在,当定义在data中的变量isExist值为false时,这个元素消失(控制台看不到此元素),并非隐藏;isExist值为true时出现 --><span v-show='isExist'>{{hello}}</span><!-- 条件渲染:v-show='isExist'---- v-show控制元素是否显示,当定义在data中的变量isExist值为false时,这个元素隐藏(display:none),并非消失;isExist值为true时显示--><!-- 条件渲染:v-else:此指令需要和v-if指令结合使用,当v-if中isExist变量值为false时出现v-else指令所在标签;值为true时消失 --><div v-if='isExist'>{{hello}}</div><div v-else>{{word}}</div><!-- 条件渲染:v-else-if:此指令需要和v-if及v-else指令结合使用(建议结合),当v-if中isExist变量值为false时再判断v-else-if指令的条件,如值为true时执行,否则执行v-else指令;和原生中if/else if/else执行一样 --><div v-if='isExist'>{{hello}}</div><div v-else-if='isShow'>{{word}}</div><div v-else>{{jack}}</div><!-- 条件渲染组:当需要对多个元素进行条件渲染时,可以使用template进行包裹,渲染完后是没有template标签的--><template v-if="ok"><h3>h1</h3><p>P1</p></template><div v-cloak>{{hello}}</div><!-- 控制当编译完后才显示,可以隐藏未编译的 Mustache 标签,直到编译完在显示 --><!-- v-for in 遍历数组 --><li v-for='item in arrays'>{{item}}</li><!--arrays可以是一个整数,此时从1遍历到这个整数值--><li v-for='(item,index) in arrays'>{{item}}-{{index}}</li><li v-for='item of arrays'>{{item}}</li><!--也可使用of代替in--><li v-for='item in arrays' :key='item.id'>{{item}}</li><!--给每项通过key添加唯一标识,便于找到自己--><!-- 也可以在template 中使用v-for遍历一组内容 --><!-- v-for in 遍历对象 --><li v-for='value in objects'>{{value}}</li><li v-for='(value,key) in objects'>{{value}}-{{key}}</li><li v-for='(value,key,index) in objects'>{{value}}-{{key}}-{{index}}</li><!-- 事件处理器: --><button v-on:click.stop='alerts()'>弹框</button><!-- 绑定事件:v-on:事件='事件处理函数名(括号可以省略,处理函数是定义在methods中的函数))';v-on:可以简写为@,注意直接在事件前面加@,如:@click --><a v-on:[even]="functionName"> 动态参数设置事件类型 </a><!-- 事件修饰符: --><button @click.stop='alerts()'>弹框</button><!--这里stop阻止冒泡事件  --><button @click.prevent='alerts()'>弹框</button><!--这里.prevent阻止默认事件  --><button @click.stop.prevent='alerts()'>弹框</button><!--这里stop.prevent也是阻止默认事件,只是是串联修饰符  --><button @click.self='alerts()'>弹框</button><!--这里self表示给自身绑定事件  --><button @click.once='alerts()'>弹框</button><!--这里once表示只触发一次事件  --><!-- 访问原始DOM事件:$event,如:$event.preventDefault()--><button @click='remove,show(e)'></button><!-- 给同一个事件绑定多个处理函数 --><!--按键修饰符:--><input @keyup.enter="submit" /><!--只有按enter键时触发事件函数--><input @keyup.KEY="submit" /><!--只有按下指定的键时触发事件函数,KEY可以是按键的key值--><!--鼠标按钮修饰符:.left  .right  .middle--><!-- 更多建议查阅相关文档 --><!-- Vue组件:全局组件和局部组件:单页面一般是局部组件,多页面一般是全局组件。父子组件通讯-数据传递:父组件向子组件通过Props传递数据,子组件是不允许给父组件传递的,但是可以通过Emit变相的底部触发实现传递。Slot:插槽,后面详细介绍。 --></div></template>

vue文件script基本语法:

	    <script>// 引入子组件:在一个vue文件中可以引入另一个vue文件(一般是此组件的子组件)import headervue from 'headervue.vue';export default {//1.name:-------给组件定义一个名字name: 'test',//2.data:function(){}-------变量的声明,一般实际开发中采用es6简写,如下:data() {return { //放数据的对象,vue中的变量都要在这里进行声明:text: 'hello word!', //如果想要渲染text的内容,那么在*.veu 文件头部template中根节点使用{{}}包裹,即{{text}},在template根节点中添加:<input type='text' v-model='text'>即可实现数据双向绑定(主要是v-model指令的功劳)list: [{ name: jack }, { naem: join }, { name: qun }] //将此列表渲染:在*.veu 文件头部template中根节点写入,如下:// <ul>//   <li v-for='persons in list'> //v-for指令用于遍历//     {{persons.name}}//   </li>// </ul>}},//3.methods:{}-----方法的声明,用于声明函数方法供vue使用:methods: {add() {},remove() {}},//4.components:{}------声明子组件,引入的组件要进行声明才可以正常使用,如果变量名和变量关键字相同,可以简写一个变量关键字即可:components: {headervue: headervue,footervue},//5.props:[]------设置接收父组件传递过来的参数:props: ['key1', 'key2'],//6.filters:{}------声明过滤器:filters: {myfilter: function(value) {return value;}},//7.created(){}------事件处理函数,数据已经初始化,但是DOM还未生成:created() {},//8.mounted(){}-----数据装载DOM后,DOM已经生成mounted() {},//9.计算属性:里面可以定义函数,但是此函数会自动执行,用于解决模板中表达式过长问题(将表达式定义在函数中并返回,模板中使用函数名即可)computed:{},//与methods不同的是computed是反应依赖缓存机制的;只要依赖数据不变,computed就不会再调函数,而是在缓存中拿数据//10.侦听器:不管什么时候待处理的事发生变化,都会执行watch里面的函数:(可执行异步操作)watch: {}}</script>

vue中style基础语法:

	<style scoped>/* 这里添加scoped表示这里定义的样式只在此组件中有效,如果没有加此标识,那么引入此组件的其他组件也是会使用到这里的样式的,建议添加 *//* 正常书写css代码即可 */</style>

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux进程调度之 FIFO 和 RR 调度策略

转载 http://blog.chinaunix.net/uid-24774106-id-3379478.html linux进程调度之 FIFO 和 RR 调度策略 2012-10-19 18:16:43分类&#xff1a; LINUX 作者&#xff1a;manuscola.beangmail.com 博客地址&#xff1a;bean.blog.chinaunix.net 最近花了10几天的时间&#xff0…

echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...

有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物本文作者&#xff1a;Summer轴手性联芳基二醇骨架广泛存在于天然产物、生物活性分子、有用的手性配体以及催化剂中(Figure 1a)&#xff0c;因此&#xff0c;轴手性联芳基二醇化合物的合成受到广泛关注且已经取得了…

vue中自定义指令、组件化、生命周期、节流和防抖、获取DOM、mint-ui简介、过渡和动画

自定义指令&#xff1a; vue中通过directive方法自定义指令&#xff0c;如&#xff1a;自定义一个v-focus指令&#xff1a; <script>Vue.directive(focus, {//通过directive(指令名,{配置})注册全局指令inserted: function (el) {//inserted:表示当自定义指令插入元素后…

H264解码的一个測试程序

网上看到的一个H264视频格式的解码測试程序&#xff0c;能够用来參考其逻辑流程。 代码例如以下&#xff1a; Test_Display_H264(){ in_fd open(H264_INPUT_FILE, O_RDONLY); //video file open fstat(in_fd, &s); …

spring框架 web开发_go语言web开发框架学习:Iris框架讲解(一)

Golang介绍Go语言是谷歌推出的一种全新的编程语言&#xff0c;可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说&#xff1a;我们之所以开发Go&#xff0c;是因为过去10多年间软件开发的难度令人沮丧。谷歌资深软件工程师罗布派克(R…

vue-router路由、mixin混入、vue-resource、axios、计算属性watch、moment.js、vuex、vue-cli、数据双向绑定、搭建vue环境、vue实例、配置启动项

路由vue-router介绍: // 1.前端路由核心&#xff1a;锚点值的改变&#xff0c;根据不同的锚点值&#xff0c;渲染指定dom位置的不同数据。// 2.vue中&#xff0c;模板数据不是通过ajax请求的&#xff0c;而是调用函数获取到模板内容// 3.vue-router使用方式&#xff1a;// 1.下…

最小路径覆盖,最小点覆盖,最大独立点集(转)

来自&#xff1a;http://blog.csdn.net/l04205613/article/details/6278394 node 1&#xff1a;最小路径覆盖 在一个&#xff30;&#xff38;&#xff30;的有向图中&#xff0c;路径覆盖就是在图中找一些路经&#xff0c;使之覆盖了图中的 所有顶点&#xff0c;且任何一个顶…

iOS中画矩形的几种方法总结

方法1&#xff1a; #pragma mark 画矩形方法1void drawRect1(){ // 1取得图形上下文 CGContextRef ctx UIGraphicsGetCurrentContext(); // 2画一条线段 // 设置一个起点 CGContextMoveToPoint(ctx, 20, 20); CGContextAddLineToPoint(ctx, 100, 10…

linux终端的背景_如何在终端显示图像缩略图 | Linux 中国

lsix 是一个简单的命令行实用程序&#xff0c;旨在使用 Sixel 图形格式在终端中显示缩略图。-- Sk不久前&#xff0c;我们讨论了 Fim[1]&#xff0c;这是一个轻量级的命令行图像查看器应用程序&#xff0c;用于从命令行显示各种类型的图像&#xff0c;如 bmp、gif、jpeg 和 png…

移动App开发、App和Web区别、开发移动app时技术选型

移动App开发 混合移动App: 移动端App开发有Android和iOS及混合App,开发它们采用不同的语言,如: 苹果软件使用: OC、或者Swift语言开发。 安卓软件使用:Java,安卓控件进行开发。 混合App使用:把前端特有的技术(HTML+CSS+JS)通过某种方式移植到移动App开发上,这种…

多线程下HttpContext.Current 的问题

在项目中需要记录文本日志&#xff0c;为了加快响应速度所以用到了多线程。 但是以前的方法是不支持多线程的&#xff0c;程序运行错误。 追踪代码发现提示HttpContext为空。 1.HttpContext.Current表示当前HttpRequest 对应的Context对象 httpContext.current在不同的httpRe…

混合App开发,HBuilder开发移动App

使用HBuilder开发混合App&#xff1a; Hbuilder&#xff1a;是一个在线打包工具&#xff0c;不需要在本地配置开发环境&#xff1b;直接将做好的网站&#xff0c;通过一些简单的操作&#xff0c;就能在线打包为一个App&#xff1b; 混合APP开发常见技术&#xff1a;Html5、Re…

fanuc roboguide_ROBOGUIDE软件:机器人产线输送带输送物料虚拟仿真操作

概述输送带在机器人生产线或工作站中是常见的物料传送设备&#xff0c;它能够将物料从一个工位自动传送到另一个工位&#xff0c;是实现自动化生产制造必不可少的装置设备之一。虚拟仿真是对真实的工业机器人生产线或工作站的图形化再现&#xff0c;因此&#xff0c;对于具有输…

ZOJ 3209

精确覆盖 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> using namespace std;const int maxn920; const int maxnode920*550; const int maxr550; int ans; struct DLX {int n , sz; …

webpack上线版(生产环境中推荐使用)

配置上线版&#xff08;生产环境&#xff09;webpack&#xff1a; 实际中将开发环境中和生产环境中打包配置是分开的&#xff0c;两者本质没太大区别&#xff0c;只是生产环境中的webpack打包配置要更加优化合理&#xff0c;下面将具体介绍一下生产环境中webpack配置文件&…

双电阻差分电流采样_小小的采样电阻,还真有点门道!

电流检测电阻的基本原理根据欧姆定律,当被测电流流过电阻时,电阻两端的电压与电流成正比.当1W的电阻通过的电流为几百毫安时,这种设计是没有问题的.然而如果电流达到10-20A,情况就完全不同,因为在电阻上损耗的功率(PI2xR)就不容忽视了.我们可以通过降低电阻阻值来降低功率损耗,…

jpa in查询_优选在shopee虾皮怎么发货价格查询皮皮虾云仓

优选在shopee虾皮怎么发货价格查询皮皮虾云仓皮皮虾云仓物流系统为现代化管理系统&#xff0c;可集中化&#xff0c;高效化的处理本土店物流订单。物流系统可对接主流的的电商平台ERP可以实现高效的订单处理。如lazada&#xff0c;shopee&#xff0c;1688、速卖通、eaby、shopi…

html5+、ReactNative、Weex、Ionic之间的区别、(配置java、python、Android环境)、ReactNative(react-native-cli)、yarn、Weex

html5、ReactNative、Weex、Ionic之间的区别&#xff1a; html5和Ionic&#xff1a; 在开发原理上基本相同&#xff0c;都是需要先开发出一个完整的网站&#xff0c;再通过html5或Ionic提供的打包技术对网站进行打包成移动app&#xff0c;它们实际还是一个网站&#xff0c;并非…

AVAudioSession

AVAudioSession类由AVFoundation框架引入。每个IOS应用都有一个音频会话。这个会话可以被AVAudioSession类的sharedInstance类方法访问&#xff0c;如下&#xff1a; AVAudioSession *audioSession [AVAudioSession sharedInstance];复制代码在获得一个AVAudioSession类的实例…

delphi listview失去焦点后的颜色_阴阳师姑获鸟和惠比寿建模更新对比 爷爷帅了 觉醒后鸟姐颜值提升...

阴阳师体验服近期更新了人气式神姑获鸟还有惠比寿的相关建模&#xff0c;本次特别奉上有关这两位式神的建模形象对比图&#xff0c;对比后发现经过修改和优化之后&#xff0c;爷爷更帅了&#xff0c;而觉醒后的鸟姐颜值也有所提升&#xff0c;一起来看看吧。惠比寿觉醒前觉醒前…