-
Notifications
You must be signed in to change notification settings - Fork 255
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
739 changed files
with
94,362 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
# Nvue/Weex | ||
|
||
> 使用Uniapp做了一个App,感觉性能不是很好,了解过Uniapp的Nvue,就想做一个纯Nvue项目,其实基本就是做一个Weex项目,不得不说坑是真的多,但是渲染性能真的是没得比 | ||
> 本项目开发环境为 UNIAPP 的 纯NVUE 项目,与WEEX有不同之处 | ||
> [https://github.com/WindrunnerMax/SW](https://github.com/WindrunnerMax/SW) | ||
|
||
## 一、 CSS选择器 | ||
### 1. 简单类选择器 | ||
|
||
```css | ||
/** Weex仅支持简单类选择器,不支持标签选择器以及子选择器 **/ | ||
|
||
/* 支持 */ | ||
.test{ | ||
padding: 10px; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
} | ||
|
||
.test , .test2{ | ||
padding: 10px; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
} | ||
|
||
|
||
/* 不支持 */ | ||
a{ | ||
padding: 10px; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
} | ||
.test .test2{ | ||
padding: 10px; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
} | ||
``` | ||
## 二、通用样式 | ||
|
||
### 1. flex 布局 | ||
|
||
- 每个节点自动设置为flex,无需再次显示声明,且flex为唯一布局方式 | ||
- flex默认方向为纵向,与Web默认不同,需手动声明为横向 `flex-direction: row;` | ||
- 使用`align-items: center;justify-content: center;/* flex为横向为例 */`进行居中 | ||
- 建议阅读[http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html](http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html) | ||
- 使用 `flex: 1;`可以将父容器填充满 | ||
|
||
|
||
|
||
|
||
### 2. text 文字 | ||
|
||
- 显示文字必须在`<text></text>`中使用 | ||
- `color: #aaa;font-size: 15px;`等样式仅在`<text></text>`中生效 | ||
- color、font-size等属性不支持从父节点继承,必须使用class或者内联声明 | ||
- text标签中内联 margin、padding 样式失效,需使用class声明 | ||
|
||
### 3. page 页面 | ||
> Weex不支持page选择器,也没有page样式,page.json中设置backgroundColor也无效 | ||
> 只能弯道超车设置整体页面颜色,但是效果并不是特别好 | ||
> 注意这是Uniapp的Nvue方式 | ||
> 此外,直接在 .page 设置 flex:1 , 并将 class="page" 赋予根节点,可以将页面扩充至满屏,但也会导致页面无法滚动 | ||
> 官方机器人给予了更好的解决方案 | ||
> 此外一个坑,Nvue不支持全局组件,每个页面需要的组件必须在页面单独引入 | ||
```css | ||
/** 首先声明 .page 类 **/ | ||
.page{ | ||
font-family: Arial,, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif; | ||
padding: 10px; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
} | ||
``` | ||
|
||
```xml | ||
<template> | ||
<view> | ||
<view class="page" ref="box"> <!-- 声明page与容器块,注意ref --> | ||
<!-- 页面内容 --> | ||
</view> | ||
<view style="background-color: #F8F8F8;" :style="pageFill"></view> <!-- 填充块 --> | ||
</view> | ||
</template> | ||
|
||
``` | ||
|
||
```javascript | ||
// 获取页面已使用高度,将填充块高度设置为屏幕高度-已使用容器高度 | ||
const app = getApp() | ||
const dom = weex.requireModule('dom'); | ||
export default { | ||
data() { | ||
return { | ||
pageFill: { | ||
width: "750rpx", | ||
height: "0rpx" | ||
} | ||
} | ||
}, | ||
onReady: function() { | ||
this.resize(); // 调用resize调整填充块大小 | ||
var that = this; | ||
// uni.requests 中 success 可以调用 that.$nextTick(() => { that.resize() }) | ||
}, | ||
methods: { | ||
resize: function() { | ||
const that = this; | ||
const result = dom.getComponentRect(this.$refs.box, option => { | ||
that.pageFill.height = (uni.getSystemInfoSync().windowHeight - option.size.height) + 'px'; | ||
console.log(uni.getSystemInfoSync().windowHeight, option.size.height); | ||
}) | ||
}, | ||
} | ||
} | ||
``` | ||
|
||
```xml | ||
<!-- 使用flex:1;的情况,可以设置全屏页面,但这样页面将无法滚动 --> | ||
<!-- 页面中 --> | ||
<template> | ||
<view class="page"> | ||
|
||
<!-- 节点内容 --> | ||
|
||
</view> | ||
</template> | ||
|
||
<!-- App.vue --> | ||
<style> | ||
.page{ | ||
font-family: Arial, Helvetica, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif; | ||
padding: 10px; | ||
font-size: 15px; | ||
flex: 1; | ||
background-color: #F8F8F8; | ||
} | ||
</style> | ||
``` | ||
|
||
```xml | ||
<!-- 官方的方法,偶然看到官方群机器人的回复 --> | ||
<template> | ||
<view class="page" style="flex:1;"> | ||
<scroll-view scroll-y="true"> | ||
<view> | ||
<!-- 页面内容 --> | ||
</view> | ||
</scroll-view> | ||
</view> | ||
</template> | ||
|
||
<!-- 封装个组件 --> | ||
<template name="scrollpage"> | ||
<view class="scrollPage"> | ||
<scroll-view scroll-y="true"> | ||
<view class="scrollRootView"> | ||
<slot></slot> | ||
</view> | ||
</scroll-view> | ||
</view> | ||
</template> | ||
|
||
<script> | ||
export default { | ||
name: "scrollpage", | ||
data() { | ||
return {}; | ||
} | ||
} | ||
</script> | ||
|
||
<style> | ||
.scrollPage{ | ||
font-family: Arial, Helvetica, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif; | ||
font-size: 15px; | ||
background-color: #F8F8F8; | ||
flex: 1; | ||
} | ||
.scrollRootView{ | ||
padding: 10px; | ||
} | ||
</style> | ||
|
||
``` | ||
### 4. width 宽度 | ||
|
||
- Weex 针对长度单位,支持 px 和 wx 作为长度单位,不支持相对单位(em,rem,pt,%) | ||
- Uniapp编译模式,rpx是以750宽屏幕为基准的动态单位,px则是固定像素单位 | ||
- 750rpx是Uniapp中Nvue的满屏基准,是需要编译模式为Uniapp,区别于Weex编译模式 | ||
- 除了固定大小的图片等,直接使用 flex 就可以完成布局,注意使用`flex:1;` | ||
|
||
|
||
### 5. border 边框 | ||
|
||
```css | ||
/** border不支持简写 **/ | ||
|
||
/* 支持 */ | ||
.border{ | ||
border-style: solid; | ||
border-color: #EEEEEE; | ||
border-bottom-width: 1px; | ||
} | ||
|
||
/* 不支持 */ | ||
.border{ | ||
border: 1px solid #eee; | ||
} | ||
``` | ||
|
||
### 6. display 属性 | ||
|
||
|
||
- 不支持 display 属性 | ||
- 不能使用 display:none; 来控制元素的显隐性 | ||
- v-show 条件渲染是不生效的,使用 v-if 代替 | ||
|
||
|
||
### 7. z-index 层级 | ||
- 不支持 z-index 进行层级关系的设定,但是靠后的元素层级更高,因此,可以将层级高的元素放在靠后的位置 | ||
|
||
### 8. background 背景 | ||
```css | ||
/** background不支持简写,简写在浏览器上颜色能够正常渲染,但是在手机端,颜色无法正常渲染 **/ | ||
|
||
/* 支持 */ | ||
.backgroundT{ | ||
background-color: #F8F8F8; | ||
} | ||
|
||
/* 不支持 */ | ||
.backgroundT{ | ||
background: #F8F8F8; | ||
} | ||
``` | ||
|
||
|
||
|
||
### 9. padding、margin 边距 | ||
|
||
```css | ||
/* 支持 */ | ||
padding: 1px; | ||
padding: 1px 2px 3px 4px; /* class */ | ||
margin: 1px; | ||
margin: 1px 2px 3px 4px; /* class */ | ||
``` | ||
|
||
## 三、字体图标 | ||
### 1. 阿里矢量图标库 | ||
|
||
```css | ||
/** 以阿里矢量图标库iconfont为例引入字体图标 **/ | ||
/** 只需要在首页引入一次即可全部页面使用 **/ | ||
``` | ||
|
||
|
||
```css | ||
/* App.vue */ | ||
.iconfont{ | ||
font-family: iconfont; | ||
} | ||
``` | ||
|
||
```javascript | ||
// 应用首页引入 | ||
const dom = weex.requireModule('dom'); | ||
dom.addRule('fontFace', { | ||
'fontFamily': 'iconfont', | ||
'src': "url('https://at.alicdn.com/t/font_1582902_mwrjy69s3lm.ttf')" | ||
}) | ||
``` | ||
|
||
```xml | ||
<!-- 显示图标 --> | ||
<text class='iconfont' style="color: #FF6347;"></text> | ||
``` | ||
## 四、内部组件 | ||
### 1. image | ||
|
||
- width, height 和 src必须被提供,否则图片无法渲染。 | ||
- resize属性决定图片缩放,允许值cover / contain / stretch,默认stretch | ||
|
||
### 2. webview | ||
|
||
- `<web />`是weex支持的webview组件,加载完成后显示HTML | ||
- `<web-view />`是uniapp支持的webview组件,webview-styles属性不支持 | ||
- 上述组件都必须指定width, height 和 src,否则无法显示 | ||
- 可以使用 `flex: 1;` 来设置填充满屏幕 | ||
- `<web />`阻断了下载与打开其他应用事件 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Recovery | ||
Recovery是一种可以对安卓手机内部的数据文件进行修改的模式,类似电脑的PE。不同的recovery有不同的功能。使用recovery可以说是刷机(卡刷)的基础,想要比较顺畅的刷机了解好rec是必不可少的。 | ||
|
||
> PS:为何不先介绍线刷 线刷看起来更容易,直接用手机连接电脑然后用各类刷机软件一键式操作就好。以前的话的确是这个样子,只要找到合适的刷机包一键刷机即可。但是目前各大手机厂商为了安全使用了BL锁,这样线刷就变得相对困难一些了,尤其是官方闭源,无法解锁BL的手机。 | ||
如何进入rec:在关机状态下,同时按住手的电源键和音量上(有的手机是音量下,这个键视手机而定)。 | ||
|
||
进入rec有何作用:除了刚介绍的刷机还可以进行数据的清除,某些时候手机无法开机,或者忘记了密码,并且不想去寻找售后的话,可以直接尝试清除数据 | ||
> PS:如果是忘记了密码,并且是下边将要介绍的第三方rec中的TWRP的话,可以直接删除密码文件然后就可以进入手机了 | ||
官方recovery(新买的手机官方自带的recovery),只能用它进行官方OTA系统升级以及恢复出厂设置。 | ||
第三方recovery目前主要有CWM和TWRP。CWM目前已经很少见了,主要是TWRP。 | ||
|
||
## CWM: | ||
|
||
![](screenshots/2023-04-14-20-28-42.png) | ||
|
||
1.CWM常用的只有刷入刷机包以及清除数据,并且无法采用触控的方式,只能利用音量键等进行操作,相对twrp recovery来说功能较少。 | ||
|
||
|
||
## TWRP | ||
|
||
![](screenshots/2023-04-14-20-28-55.png) | ||
|
||
1. install | ||
第三方rom、补丁的安装,也可以选install下的storage那里,切换至另一个存储器 | ||
2. wipe | ||
对手机的某些分区或者内存储、外置SD卡或者OTG设备进行清除。双清三清四清五清,刷机一般只需要双清即可 | ||
3. Back up | ||
对手机某些分区的备份 | ||
4. restore | ||
对手机某些分区的数据恢复还原 | ||
5. mount | ||
挂载手机某些分区 | ||
对系统文件进行管理或者终端操作system分区时,会发现找不到system,这时要用到mount命令。 | ||
6. advanced | ||
对手机内部数据管理,包括复制、移动、赋权限、删除和重命名(对system进行操作别忘了用MOUNT命令) | ||
7. SD卡分区; | ||
partition SD card,这个请自行尝试 | ||
8. reload theme | ||
修改recovery主题,可以美化recovery界面,以及使用中文界面 | ||
将下载的主题(ui.zip)放到TWRP/theme/目录下(可能是内存储,也可能是外置SD卡,看你recovery里面的storage选择哪里了),点击reload theme,即可使用主题。可以通过主题选择,将TWRP界面换成中文版。 | ||
9. terminal command | ||
手机端终端,对手机系统进行修改 | ||
10. file manager | ||
文件管理 | ||
11. adb sideload刷机 | ||
自动将电脑端第三方rom和补丁包推送到手机内存储或者sd卡(adb命令:adb sideload ***.zip) |
Oops, something went wrong.