前端UI-Framework7 vue使用 创建项目

1.官方GITHUB模板下载

1-1.安装

git clone https://github.com/nolimits4web/Framework7-Vue-Webpack-Template my-app

npm install

1-1-2. 模板目录结构

src/assets - 公共资源

src/components - 组件

src/css - css 代码

src/pages - app .vue页面

src/main.js - main  包含/导入所有必需的libs和init应用程序的应用程序文件 ()

src/routes.js - app 路由 (framework7-vue 中的路由导出的是数组)

src/app.vue - main 主要应用结构/组件

1-2.app.vue文件

<template>

  <!-- App -->

  <f7-app :params="f7params">

    <f7-view url="/" :main="true" class="ios-edges"></f7-view>

  </f7-app>

</template>

<script>

  // Import Routes...

import routes from './router'

  export default {

    data() {

      return {

//具体参考  http://framework7.io/docs/app.html

        f7params: {

          theme: 'ios',// 主题 auto自适应; ios: 苹果; android:安卓

          routes,// 路由(数组)

          id: 'io.framework7',

          touch:{

            disableContextMenu: false // 是否开启上下文联动(移动端复制粘贴)

          },

          dialog: { // fw7-vue 选择框按钮内容

            buttonOk: "确认",

            buttonCancel: "取消"

          },

        }

      }

    }

  }

</script>

二 vue项目中安装Framework7

1-初始化一个vue应用

vue init webpack framework7-vue-demo

2-安装framework7和framework7-vue

npm install framework7

npm install framework7-vue

3-修改vue文件结构(初始化App)

 官网文档 Initialize App 这一节中的 ES Modules 有相应的指导,我们要修改的文件有index.html、main.js(my-app.js)、  app.vue。 

首先是index.html

<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:">

  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">

  <meta name="apple-mobile-web-app-capable" content="yes">

  <meta name="apple-mobile-web-app-status-bar-style" content="default">

  <meta name="theme-color" content="#2196f3">

  <meta name="format-detection" content="telephone=no">

  <meta name="msapplication-tap-highlight" content="no">

  <title> demo </title>

</head>

<body>

  <div id="app"></div>

</body>

</html>

framework7-vue

main.js:

import Vue from 'vue'

import Framework7 from 'framework7/framework7.esm.bundle.js'

import Framework7Vue from 'framework7-vue/framework7-vue.esm.bundle.js'

import Framework7Theme from 'framework7/css/framework7.bundle.css' //我移植后发现这个引用并没有执行 应该引用下面的样式

import 'framework7/css/framework7.bundle.css';

Framework7.use(Framework7Vue);

import App from './app.vue';

new Vue({

el: '#app',

render: (h) => h(App),

});

app.vue:

import routes from './router'

export default {

data() {

return {

f7params: {

routes:routes,

name: 'My App',

id: 'com.myapp.test',

theme: 'auto',

view: {

pushState: true,

pushStateRoot: ' ' ,             //根URL分隔符也可以使用 document.location.pathname.split('index.html')[0]

pushStateSeparator: '#'     //pushStateRoot为空字符才能使用,网址分隔符号 # !

                }, //f7移植到vue后路由切换后刷新无法保存当前路由在app.vue中加入pushState属性和pushStateRoot属性以及让‘/’根路由匹配index.html

                 stackPages: true,

iosTouchRipple: true

}

}

}

}

index.js:

import home from '@/pages/home'

import changeNet from '@/pages/menu/changeNet.vue'

export default [

    {

path: '/',

name: 'home',

        component: home,

alias: '/index.html'  //alias定向根目录的别名路径,必须加 不然打包后找不到你的首页

    }, {

path: '/changeNet',

name: 'changeNet',

        component: changeNet

    },

]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容