zoukankan      html  css  js  c++  java
  • uni-app条件编译

    // #ifdef %PLATFORM%
       这里的代码只在该平台下进行编译
    // #endif
    
    #ifdef :      if defined  仅在某个平台编译
    #ifndef :     if not defined  在除里该平台的其他编译
    #endif :      end if 结束条件编译
    %PLATFORM%     需要编译的平台
    

    uni-app支持的各个平台

    平台
    APP-PLUS 5+App
    APP-PLUS-NVUE 5+App nvue
    H5 H5
    MP-WEIXIN 微信小程序
    MP-ALIPAY 支付宝小程序
    MP-BAIDU 百度小程序
    MP-TOUTIAO 头条小程序
    MP-QQ QQ小程序
    MP 微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序

    支持的文件

    • .vue
    • .js
    • .css
    • pages.json
    • 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

    注意: 条件编译是利用注释实现的,在不同语法里注释写法不一样,js使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用

    <template>
    	<div>
    		<cu-custom bgColor="bg-gradual-blue">
    			<block slot="content">首页</block>
    		</cu-custom>
    		
    		<!-- #ifdef APP-PLUS -->
    			<view>
    				这里是app 
    			</view>
    		<!-- #endif -->
    		
    		<!-- #ifdef H5 -->
    			<view>
    				这里是H5 
    			</view>
    		<!-- #endif -->
    		
    		<!-- #ifdef MP -->
    			<view>
    				这里是微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序
    			</view>
    		<!-- #endif -->
    	
    		
    		 <view>
    		 	这里没有通过条件判断的
    		 </view>
    		
    	</div>
    </template>
    
    <script>
    	export default{
    		data(){
    			return{
    				
    			}
    		},
    		methods:{
    			 
    		}
    	}
    </script>
    
    <style>
    </style>
    
    
    

    结果:

    static 目录的条件编译:

    在不同平台,引用的静态资源可能也存在差异,通过 static 的的条件编译可以解决此问题,static 目录下新建不同平台的专有目录(目录名称同 %PLATFORM% 值域,但字母均为小写),专有目录下的静态资源只有在特定平台才会编译进去。

    如以下目录结构,a.png 只有在微信小程序平台才会编译进去,b.png 在所有平台都会被编译。

    ┌─static                
    │  ├─mp-weixin
    │  │  └─a.png     
    │  └─b.png
    ├─main.js        
    ├─App.vue      
    ├─manifest.json 
    └─pages.json  
    

    整体目录条件编译:

    如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建platforms目录,然后在下面进一步创建APP-PLUS、MP-WEIXIN等子目录,存放不同平台的文件。

  • 相关阅读:
    Flutter 布局(九)- Flow、Table、Wrap详解
    Flutter 布局(三)- FittedBox、AspectRatio、ConstrainedBox详解
    广州小程序开发攻略
    Angular2 富文本编辑器 ng2-ckeditor 的使用
    onlyoffice5.4.2离线包下载—解决中文字体问题
    beego+vue父子组件通信(父子页面传值、父子组件传值、父子路由传值)
    beego+vue.js分离开发,结合发布,简单部署
    flow-vue.js移动端效果
    engineecms——工程师知识管理系统,带文档协作和状态和流程
    engineercms支持文档协作和文档流程,基于flow
  • 原文地址:https://www.cnblogs.com/justyouadmin/p/13384466.html
Copyright © 2011-2022 走看看