Skip to content

Commit

Permalink
24/11/18
Browse files Browse the repository at this point in the history
Former-commit-id: aa507b0
  • Loading branch information
WindRunnerMax committed Nov 18, 2024
1 parent 9da18c6 commit 9a85b31
Show file tree
Hide file tree
Showing 739 changed files with 94,362 additions and 0 deletions.
293 changes: 293 additions & 0 deletions App/NvueWeex.md
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;">&#xe601;</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 />`阻断了下载与打开其他应用事件
48 changes: 48 additions & 0 deletions Environment/Recover刷机简介.md
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)
Loading

0 comments on commit 9a85b31

Please sign in to comment.