作为前端三大框架之一的 Vue

在前段时间 GitHub Star 超越了 react,成为各大社区讨论的热点,以前有过简单了解,今天和同事在开发 Vue 项目时遇到了
问题(用 ajax 请求数据,然后将数据 props 到子组件的时候,因为 ajax 是异步的,然后会发生没有数据),就来更好的学习了解
下 Vue 的生命周期,了解使用过 react,再回头看 Vue,发现很熟悉啊,

Vue 实例

  • 实例化 Vue,需要注意的是含 this 的函数大多不要使用箭头函数,因为我们期望 this 指向 Vue 实例
  • data Vue 实例的数据都保存在 data 对象中,Vue 将会递归将 data 的属性转换为 getter/setter,
    从而让 data 的属性能够响应数据变化
1
2
3
4
5
6
7
8
const app = new Vue({
// 直接创建一个实例
data: {
a: 1
}
})
})
<!-- 这样数据就绑定在 HTML 中,Vue 框架监视 data 的数据变化,自动更新 HTML 内容 -->

生命钩子函数,它可以总共分为 11 个阶段:
注意:Vue 的所有生命周期函数都是自动绑定到 this 的上下文上。所以,你这里使用箭头函数的话,就会出现 this 指向的父级作用域,就会报错。

beforeCreate(创建前)

  • 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用
  • 不能访问到 methods、data、computed、watch 上的方法和数据
1
2
3
el: undefined;
data: undefined;
message: undefined;

阅读全文 »

react-native-echarts 安卓版打包后,图表不显示

1、兼容手机端

1
<meta name="viewport" content="width=device-width, initial-scale=1">

2、解决 android 打包后不显示

复制文件 tpl.html(路径: node_modules\native-echarts\src\components\Echarts)
至 android\app\src\main\assets 目录下

1
2
3
4
5
6
7
8
9
10
11
<!--将-->
source={require('./tpl.html')}

<!--修改为-->
source={Platform.OS==='ios' ? require('./tpl.html'):{uri:'file:///android_asset/tpl.html'}}

<!--另外将-->
import { WebView, View, StyleSheet } from 'react-native';

<!--修改为-->
import { WebView, View, StyleSheet, Platform } from 'react-native';
阅读全文 »

ios 经典错误:Undefined symbols for architecture XXX

因为我是在真机上编译的项目,所以报错的架构(CPU 指令集)为 arm64。
如果我们使用 64 位模拟器(iPhone simulators 5s 或更高版本)编译或者运行项目,就会报以下错误:

1
Undefined symbols for architecture x86_64:

如果我们使用 32 位模拟器(iPhone simulators 5 或更低版本)编译或者运行项目,就会报以下错误:

1
Undefined symbols for architecture i386:

类似的错误是一个开发中经常遇到的问题,凡是涉及到第三方静态库的项目,都不可避免的遇到过这一类错误。本次记录实在我向项目中集成友盟统计是遇到的,下面就以友盟统计为举例

原因之一:没有链接 lib 库而报错

阅读全文 »

项目中添加子模块

  • 经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。这里以 hexo-next 为例

  • Git 通过子模块处理这个问题。子模块允许你将一个 Git 仓库当作另外一个 Git 仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立

  • 你想把 next 加入到你的项目中,可能既要保持你自己的变更,又要延续上游的变更。首先你要把外部的仓库克隆到你的子目录中。你通过 git submodule add 将外部项目加为子模块放入 themes/next 文件夹下:

1
git submodule add https://github.com/Gzbox/hexo-theme-next.git  themes/next
阅读全文 »
0%