三、阅读器的开发--1、项目准备

1、项目准备

1.1、项目搭建

我用的脚手架是vue cli 5.0的,通过vue create 项目名称来创建的项目

上下箭头选的是最后那个,是指手动配置,然后回车

空格选中下面这些,然后回车

下图最后那个指我们所有的配置在哪里配置,第一个是指在单独的文件中配置,第二个是集成在package.json中,默认的时候是让它在package.json文件中,但是对初学者来说,若文件量大都集成在package.json中看的就不那么清楚,所以这里我选择的是第一个。这也是手动模式跟默认模式的区别,默认模式是选在package.json中

然后就是在创建项目了,等待创建完成即可

如下,然后我们通过http://192.168.112.42:8080/即可访问到

用vscode可以看到,用来vue的和config这两个目录已经没有了,只有src源码文件和public静态文件两个文件夹,整个项目的结构被大大简化了

下面我们来尝试一下打包功能,打开package.json,可以看到打包的指令仍然是build,所以我们可以通过npm run build来进行打包,如下已经打包完成,可以看到dist目录有我们所有的打包文件

我们打开文件夹dist下面的index.html,发现没有出现我们期望的网站内容,这是为什么

因为路径问题,我们无法通过下面这样的一个路径找到我们css文件。这时候就需要到vue.config.js,这个文件是用来做我们vue当中的一些配置。

我们给它配置如下图,通过process.env环境变量的NODE_ENV,当它等于production即开发模式时,我们将baseUrl设置为'./',表示获取我们当前路径下,那么这样就可以正确获取我们css,而如果是测试时仍然如果'/',配置完后尝试重新运行npm run build,再重新打开index.html即出现了如下浏览器这样了

1.2 我们尝试渲染出电子书

引入epub.js包,即npm i --save epubjs

像之前讲的那样,在HomeView中引入epub,并置成公共的,并且建一个类名为read的dom,以后电子书都是挂载到这里的

如下,我们实例化一个book对象,可以看到控制台中已经打印出该book对象了,注意read是id而不是class

如下

1.2 项目准备

·准备字体图标

·项目依赖包下载+项目配置

·准备Web字体

·viewport配置(可以禁止用户对浏览器进行缩放)

·rem设置+自适应布局实现思路

·global.scss和reset.scss(global.scss是全局样式文件,reset.scss是帮助我们重置html默认样式的文件

·引入vuex(对组件进行解耦,实现组件的状态管理)

·搭建静态资源服务器

        ·nginx安装

        ·配置文件

        常见问题及处理方法

1.2.1 字体图标准备

在iconfont网站中找到需要的svg图标,svg下载到本地,然后拷贝到项目的assets下,如下再在main.js中把字体图标引入即可

怎么看要用哪个图标,打开下面这个index在浏览器中可以看到,直接用class="icon-xxx"即可在页面中显示出这个图标

实例:如下所示即可使用图标

那我们需要去调整这个图标的大小这些怎么整呢,直接在css的style标签中用.icon-xxx{},一般用font-size:xx; color:xx;

1.2.2项目依赖包下载

安装node-sass和sass-loader即可,注意版本号问题即可

1.2.3 viewport配置和rem配置

在index.html的viewport中的content中加入maxmum-scale=1.0这是最大的缩放比例1.0,最小的可缩放比例minmum-scale=1.0,同时user-scalable=no也就是不允许用户进行缩放,这样的话用户在手机上就不会进行缩放了

然后我们来引入rem。我们只需要去取到html的根元素设置它的fontsize属性就可以了,如下

1.2.4 global.scss和reset.scss设置

为项目添加一个全局样式文件,如下在assets的styles下新建一个global.scss,然后在main.js中引入这个global.scss

然后在APP.vue中引入global.scss

你看即实现了,别忘记了要lang="scss",因为默认是css,然后要引入这个global别忘记了

1.2.5 引入vuex

vuex就是解决多个组件共享状态的问题。

像我们之前多个组件尤其是存在层次关系的时候,我们传递参数调用方法就比较繁琐。比如孙子要用爷爷的参数,它得先传给dad再传给孙子,层层传递就比较麻烦,vuex就是解决这个问题的。

vuex中我们所有共享的数据都可以放在state中,一旦放到这里,所有的组件都可以很方便的取到,vuex的mutations就是用来改变state中的数据的方法,vuex中的actions是用来调用mutations方法的,可以通过异步的方式来调用。

若state中数据很多,那么state、mutations、actions都写在一起就可能很多很杂,所以vuex就为了解决这个问题给了我们模块化

我们一旦做vuex开发,vue的调试工具这个vue插件即下面这个对我们来说调试很重要

有时候你定义了一个对象A,然后对象里有属性B,然后你想访问到这个B的时候你需要this.$store.state.A.B就每次都要this.$store.A再点B才能访问到B就比较麻烦,vuex就提供了getters,通过这个getters.js中就可以之前需要通过this.$store.state.A.B才能访问B现在直接this.B就能访问B了,然后在store下的store.js中把这个getters.js引入进来,使用就是通过mapGetters这样的一个对象。

1.2.6搭建静态资源服务器

nginx.org官网中可以下载,nginx是俄罗斯开发的一个http的web服务器,它特点就是占用内存少运行速度快,我们经常可以把它用做反向代理也可以做静态资源的管理。下图这个nginx.conf是我们nginx配置文件,现在我们去配置

http表示一个http服务,里面的server,server代表启动一个端口提供一项服务,默认是打开80端口。端口中直接输入nginx,就可以直接来启动nginx服务器,nginx -s stop是关闭nginx服务器。到下载的这个nginx文件下,然后直接输入nginx即打开nginx服务器

然后去浏览器访问localhost:80,即可看到下面,则说明nginx启动成功

下面我们自己来建服务,指向我们自己的静态资源

我们vue端口号也是8080,所以我们改成9000,避免nginx启动失败

然后我们自己再建一个server,然后注意我们输入nginx -s reload重新加载一下,再去访问80端口不行了,去访问9000端口可以,访问这个8081也可以

我们继续修改配置文件,同时建个新的文件夹,如下面的sresoure,如图把文件路径传进去,注意不要有/r这样的路径,有的话改一下文件夹名称开头不要是r-

然后再次访即可看到index的目录,往刚才建的sresoure新建个text.txt,然后再去访问即可看到如下,那个text.txt也会加在这个目录下啦

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

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

相关文章

c++ 线程池/Github 开源项目源码分析(progschj/ThreadPool)

c 线程池/Github 开源项目源码分析(progschj/ThreadPool) 前言[ThreadPool 项目地址](https://github.com/progschj/ThreadPool)项目源码:基本用法类成员变量类成员函数构造函数的签名创建线程线程默认的任务向任务队列中添加一个任务析构函数…

open images v7的600类别名称

英文: 0: Accordion1: Adhesive tape2: Aircraft3: Airplane4: Alarm clock5: Alpaca6: Ambulance7: Animal8: Ant9: Antelope10: Apple11: Armadillo12: Artichoke13: Auto part14: Axe15: Backpack16: Bagel17: Baked goods18: Balance beam19: Ball20: Balloon21…

【Rust】Shared-State Concurrency

Shared-State Concurrency channel类似于single ownership. 而shared memory类似与multiple ownership. multiple ownership是难于管理的. smarter pointer也是multiple ownership的. Rust的type system和ownership rules帮助实现正确的multiple ownership管理。 Using Mute…

百度智能云+SpringBoot=AI对话【人工智能】

百度智能云SpringBootAI对话【人工智能】 前言版权推荐百度智能云SpringBootAI对话【人工智能】效果演示登录AI对话 项目结构后端开发pom和propertiessql_table和entitydao和mapperservice和implconfig和utilLoginController和ChatController 前端开发css和jslogin.html和chat.…

MySQL 8.0-索引- 不可见索引(invisible indexes)

概述 MySQL 8.0引入了不可见索引(invisible index),这个在实际工作用还是用的到的,我觉得可以了解下。 在介绍不可见索引之前,我先来看下invisible index是个什么或者定义。 我们依然使用拆开来看,然后再把拆出来的词放到MySQL…

kali安装docker(亲测有效)

第一步:添加Docker官方的GPG密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - 第二步: 第二步更新源 echo deb https://download.docker.com/linux/debian stretch stable> /etc/apt/sources.list.d/docker.list…

数据结构——树与二叉树

目录 树与二叉树 1.树的定义 2.树的有关术语 3.二叉树(BinaryTree) 二叉树的性质: 特殊的二叉树 满二叉树: 完全二叉树 二叉树的存储结构 顺序存储结构 链式存储结构 二叉树以及对应接口的实现 1.二叉树架构搭建 2…

关于 Microsoft Visual Studio

关于 Microsoft Visual Studio References References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

hive学习记录

问题集合 Q:终端启动hive时报错:/tmp/hive on HDFS should be writable? A:hdfs dfs -chmod 777 /tmp/hive Q:hive: unable to create database path file…错误 A:在hive-site.xml里面添加以…

【机器学习300问】47、如何计算AUC?

一、AUC是什么? (1)文绉绉的定义 AUCArea Under the Curve中文直译叫“曲线下面积”,AUC名字里面的Curve曲线指的就是ROC曲线,关于ROC曲线的相关知识我已经在之前的文章中详细说过了,有需要的友友可以点击…

CI/CI实战-jenkis结合gitlab 4

实时触发 安装gitlab插件 配置项目触发器 生成令牌并保存 配置gitlab 测试推送 gitlab的实时触发 添加jenkins节点 在jenkins节点上安装docker-ce 新建节点server3 安装git和jdx 在jenkins配置管理中添加节点并配置从节点 关闭master节点的构建任务数

[Java安全入门]六.CC3

一.前言 前几天学了一下cc1和cc6,对于我来说有点小困难,不过经过几天沉淀,现在也是如拨开云雾见青天,经过一上午的复习对cc1和cc6又有深入的了解。所以,今天想多学一下cc3。cc3执行命令的方式与cc1和cc6不一样&#x…

C#基础-标识符命名规则

目录 1、标识符定义 2、遵循规则 3、标识符的例子 4、MSDN中英文解释 英文

Debezium日常分享系列之:Debezium2.5稳定版本之Monitoring

Debezium日常分享系列之:Debezium2.5稳定版本之Monitoring 一、Snapshot metrics二、Streaming metrics三、Schema history metrics Debezium系列之:安装jmx导出器监控debezium指标 除了 Zookeeper、Kafka 和 Kafka Connect 提供的对 JMX 指标的内置支持…

革新水库大坝监测:传统软件与云平台之比较

在水库大坝的监测管理领域,传统监测软件虽然曾发挥了重要作用,但在多方面显示出了其局限性。传统解决方案通常伴随着高昂的运维成本,需要大量的硬件支持和人员维护,且软件整合和升级困难,限制了其灵活性和扩展性。 点击…

Neo4j桌面版导入CVS文件

之后会出来一个提示框,而且会跳出相关文件夹: 然后我们将CSV文件放在此目录下: 我们的relation.csv是这样的 参见: NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件_neo4j desktop使用-CSDN博客

C++11:左值与右值|移动构造|移动赋值

​ 🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:マイノリティ脈絡—ずっと真夜中でいいのに。 0:24━━━━━━️💟──────── 4:02 🔄 …

MySQL表内容的增删查改

在前面几章的内容中我们学习了数据库的增删查改,表的增删查改,这一篇我们来学习一下对表中的内容做增删查改。 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 1.创建Create 我们先创建…

Zabbix Web界面中文汉化

要想达到上图的效果,第一步先查看 /usr/share/zabbix/assets/fonts/ [rootservice yum.repos.d]# ll /usr/share/zabbix/assets/fonts/ 总用量 0 lrwxrwxrwx. 1 root root 33 3月 23 16:58 graphfont.ttf -> /etc/alternatives/zabbix-web-font 继续查看graph…

基于霍夫检测(hough变换)的人眼瞳孔定位,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…