三、阅读器的开发--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,一经查实,立即删除!

相关文章

百度智能云+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/

【机器学习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节点的构建任务数

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

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

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博客 原则:代码均由本人编写完成,非中介,提供…

vue实现饼图渲染的步骤

1) 创建一个DOM对象,有自定义的高和宽. 2) 引入Echarts软件包并导入到对应文件内 npm i Echarts import 文件.js script src.../文件 3) 初始化一个对象 4) 对象的方法实现饼图渲染 data内的数据,且当一个对象已经渲染一遍,再执行这个,会对setOption的参数进行更新,其…

Linux的学习之路:2、基础指令(1)

一、ls指令 上篇文章已经说了一点点的ls指令,不过那还是不够的,这篇文章会介绍更多的指令,最起码能使用命令行进行一些简单的操作,下面开始介绍了 ls常用选项 -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d…

02课程发布模块之部署Nginx

部署Nginx 部署网关 通过Nginx访问后台网关,然后由网关再将请求转发到具体的微服务,网关会把请求转发到具体的服务 upstream gatewayserver{server 127.0.0.1:63010 weight10; } # 网站首页对应的虚拟机 server {listen 80;server_name www.51xuecheng.cn…

Yoast插件:您的WordPress网站SEO优化利器

在之前的文章中我们介绍了如何低成本使用WordPress来搭建个人网站,相信很多朋友都希望自己的网站能够被搜索引擎所收录,并获得更高的排名,从而吸引更多的流量和用户。如果是的话,您需要了解SEO(搜索引擎优化&#xff0…

使用git+ssh访问github,避免下载资源失败

一、创建github账户之后,记住注册邮箱和账户名 我的邮箱:yuanyan23mails.ucas.ac.cn 账户名:thekingofjumpshoot 下边的相关位置需要用自己的邮箱和用户名替代 二、输入本地生成秘钥和公钥命令,并且生成公私钥对 ssh-keygen …

初识进程的地址空间、页表

一、&#x1f31f;问题引入 &#x1f6a9;代码一&#xff1a; #include<stdio.h>#include<unistd.h>int g_val100;int main(){pid_t idfork();if(id0){//子进程while(1){printf("I am a child pid:%d ppid:%d g_val:%d\n",getpid(),getppid(),g_val);…

AOF 持久化是怎么实现的?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) AOF 日志 试想一下&#xff0c;如果 Redis 每执行一条写操作命令&#xff0c;就把该命令以追加的方式写入到一个文件里&#xff0c;然后重启 Redis 的时候&#xff0c;先去读取这个文件里的命令&#xf…