美文网首页
Weex中CSS和JS的重用

Weex中CSS和JS的重用

作者: phoenixsky | 来源:发表于2017-11-02 11:53 被阅读88次

多个页面共用的CSS

这个必须吐槽一下,找了各种方法,用了什么@importsass以及scss,都不好使,特别注意@import方式,在web上好用在native上是不好使的.
下面才是正确的使用方式:

<template>
    ...
</template>
<style src="../utils/iconfont/iconfont.css" scoped></style>
<style src="./title.css" scoped></style>
<script>
    ...
</script>

竟然写两个style就好了.心疼我的智商

引入公用JS(也就是工具类)

如下目录层级:


目录层级

1 在script标签中,通过import引入,使用相对目录,注意如果需要引入的文件直接在当前文件所在层级的子目录,必须用./子目录/xxx.js;的方式,不可直接子目录/xxx.js.

import util from '../utils/iconfont/iconfont-utils';

2 在被导入的js文件中添加export.default.xxx 这个export一定要写在你定义的变量后边.

export default iconfontUtils

Show me the code

index.vue

<template>
    <div style="flex-direction: column">
        <text>哈哈</text>
        <text class="iconfont"> ←左边的是iconfont</text>
    </div>
</template>

<style src="../utils/iconfont/iconfont.css" scoped></style>
<style src="./title.css" scoped></style>

<script>
    import util from './utils/iconfont'
    export default {
        data: {},
        methods: {},
        created () {
            // 页面初始化完成后加载iconfont字体
            util.initIconfont();
        }
    }
</script>

iconfontUtil.js

/**
 * 初始化加载iconfont字体
 * 
 * @type {{initIconfont: (function())}}
 */
let iconfontUtils = {
    initIconfont() {
        let dom = weex.requireModule('dom');
        //通过获取platform判断加载字体文件的路径,(待完善,在手机playground中,是无法加载本地文件的)
        let platform = weex.config.env.platform.toLowerCase();
        let url;
        if ( "android" == platform) {
            //本地资源采用'local:// '的方式加载
           //第三个斜杠是代表当前目录,对于android来说,如果加载的是字体,那么就是assets目录,同理`/iconfont.ttf'`就是加载`assets`目录下的iconfont.ttf文件
            url = "url('local:///font/iconfont.ttf')";//注意我这里是将字体文件放在'assets/font/''目录下的
        } else if ("ios" == platform) {
            //todo 理论上同android未测试
            url = "url('local:///font/iconfont.ttf')";
        } else {
            url = "url('http://at.alicdn.com/t/xxxxxxx.ttf')"
        }
        dom.addRule('fontFace', {
            'fontFamily': "iconfont",
            'src': url
        });
    }
}
export default iconfontUtils;

封装组件(比如App的Header)

通过props来定义,父组件访问的数据

<template>
    <div class="wrapper">
        <text class="left">{{leftText}}</text>
        <text class="title">{{midText}}</text>
        <text class="right">{{rightText}}</text>
    </div>
</template>
<script>
    export default {
        props: [leftText,rightText,midText],
        data: {},
        methods: {}
    }
</script>

在父组件中通过以下方式,在compents里声明标签的字符,玛德这里必须吐槽一下,第一次定义成了header,在android里死都出来,iOS上是好的.哎,闹心,注意一下,最好不用html里已经存在的标签

<template>
  <title :leftText="返回" :midText="标题" :midText="搜索" ></title>
</template>
<script>
    import title from './component/title.vue'

    export default {
        data: {},
        components: {
            title
        },
        methods: {
        }
    }

</script>

通过对象方式

父组件声明:

<title :bundle="header"></title>

show me the fucking code ---> title.vue

<template>
    <div class="wrapper">
        <text class="left">{{bundle.leftText}}</text>
        <text class="title">{{bundle.midText}}</text>
        <text class="right">{{bundle.rightText}}</text>
    </div>
</template>

<script>
    export default {
        props: {
            bundle: {
                type: Object,
                default: function () {
                    return {
                        leftText: '返回',
                        midText: '标题',
                        rightText: '新增',
                    }
                }
            },
        },
        data: {},
        methods: {}
    }
</script>

相关文章

  • Weex中CSS和JS的重用

    多个页面共用的CSS 这个必须吐槽一下,找了各种方法,用了什么@import和sass以及scss,都不好使,特别...

  • Weex:Js与Native的交互

    介绍 weex的前端实现是通过Js+Css+Weex自定义组件完成的。那么事必存在Js与Native的扩展和交互存...

  • weex学习第二节

    weex实现js调native方法和native回调js方法 学习weex时发现js调native方法和nativ...

  • weex 的简单笔记

    原生应用:webApp Html5App hybridAPP Weex使用的是用VUE html css js 使...

  • css加载会造成阻塞吗

    结论: css不会阻塞js的解析 css会阻塞js的渲染 css会阻塞js的执行 如果页面中同时存在css和js,...

  • Weex&ReactNative对比

    JS引擎: weex使用V8, ReactNative使用JSCore JS开发框架: weex基于vue.js(...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS写在HTML文件中的 标签内的 中,JS写在HTML中 标签...

  • 进阶任务一

    一 CSS 和 JS 在网页中的放置顺序是怎样的? css 样式放在 head 中 js 放在 body 标签内的...

  • JS基础(一)

    css和js的放置位置、白屏和FOUC、async和defer、简述网页的渲染机制、 一、CSS和JS在网页中的放...

  • 任务1

    CSS和JS在网页中的放置顺序是怎样的? css标签放在head标签中 JS放在body标签中 之前,写在 标签...

网友评论

      本文标题:Weex中CSS和JS的重用

      本文链接:https://www.haomeiwen.com/subject/kodnpxtx.html