**

要点:

**
非 H5 端,不能使用浏览器自带对象,比如 document、window、localstorage、cookie 等,更不能使用 jquery 等依赖这些浏览器对象的框架。因为各家小程序快应用都不支持这些对象。没有这些浏览器自带对象并不影响业务开发,uni 提供的 api 足够完成业务。

uni-app 的 tag 同小程序的 tag,和 HTML 的 tag 不一样,比如 div 要改成 view,span 要改成 text、a 要改成 navigator。

条件编译
在 C 语言中,通过 #ifdef、#ifndef 的方式,为 windows、mac 等不同 os 编译不同的代码 uni-app 参考这个思路,为 uni-app 提供了条件编译手段,在一个工程里优雅的完成了平台个性化实现 。

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

举个例子:

// #ifdef  %PLATFORM%
平台特有的API实现
// #endif


// #ifndef H5
// 表示只有 h5 不使用这个 api
uni.createAnimation(OBJECT)
// #endif

<!--  #ifdef  %PLATFORM% -->
平台特有的组件
<!--  #endif -->

<!--  #ifdef  MP-WEIXIN -->
<!--  只在小程序中生效 -->
<view>我是微信小程序</view>
<!--  #endif -->

<!--  #ifdef  APP-PLUS -->
<!--  只在 app 中生效 -->
<view>我是 app </view>
<!--  #endif -->


/*  #ifdef  %PLATFORM%  */
平台特有样式
/*  #endif  */

/* #ifdef  MP-WEIXIN */
/*  只在小程序中生效  */
.header {
    color:red
}
/*  #endif  */

/*  #ifdef  APP-PLUS  */
/*  只在 app 中生效  */
.header {
    color:blue
}
<!--  #endif  */

简单来说就是uniapp不支持使用Jquery,它自己已经携带了很多的API接口,如果非要使用jquery,那就只能使用条件编译语句,而且只能够在H5场景中使用,其他的场景也无法操作DOM元素,还是多去熟读一下uniapp文档,说不定就找到自己需要的接口了(我是小白。。。。)
想要用jquery无非就是想使用bootstrap组件(不过可以引入bootstrap.css文件使用一些图标还是不错的,其他的。。。。),我不用这玩意组件了。。。uniapp自带了很多组件。。。我还是看官方文档吧。。。

//#ifdef H5
import $ from '@/static/js/jquery'
//#endif
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐