diff --git a/docs/vue-all.md b/docs/vue-all.md new file mode 100644 index 0000000000000000000000000000000000000000..a22f19a2c5ce9a9ada91017b4972904c5432e99d --- /dev/null +++ b/docs/vue-all.md @@ -0,0 +1,1014 @@ +## vue-basics + +我们提供了免费视频教程,在看此文档同时建议结合 [vue入门视频教程](https://learning.dcloud.io/#/?vid=0) ,帮助你更加快速掌握。 + + + **致谢** + +本文大部分内容来源于vue官网,但结合 `uni-app` 做了部分调整,以更有利于开发者快速上手。感谢Vue团队! + +- 虚拟DOM +- 运行速度快,易于上手 +- 便于与第三方库或既有项目整合 + + +在hello uni-app的 `common` 目录有一个工具类 `util.js` ,可以在hello uni-app中搜索这个例子查看。hello uni-app示例代码可从 [github](https://github.com/dcloudio/hello-uniapp) 获取。 + + +当然还有一些高级的用法 + +```js + + var dateUtils = require('../../../common/util.js').dateUtils; + + import * as echarts from '/components/echarts/echarts.simple.min.js'; +``` + +**css外部文件导入**。全局样式,在根目录下的 `app.vue` 里写入,每个页面都会加载 `app.vue` 里的样式。 + + + +`uni-app` 提供了一批[内置组件](https://uniapp.dcloud.io/component/README)。 + + - `uni-app` 使用vue的数据绑定方式解决js和 DOM 界面交互的问题。 + + +### 在 uni-app 中使用差异 + +`uni-app` 在发布到H5时支持所有vue的语法;发布到App时,由于平台限制,无法实现全部vue语法,但 `uni-app` 仍是对vue语法支持度最高的跨端框架。 + +相比Web平台, Vue.js 在 `uni-app` 中使用差异主要集中在两个方面: + +- 新增:`uni-app` 除了支持Vue实例的生命周期,还支持[应用生命周期](/collocation/frame/lifecycle?id=应用生命周期)以及[页面生命周期](/collocation/frame/lifecycle?id=页面生命周期)。 +- 受限:相比web平台,在App端部分功能受限,[具体见](/vue-api)。 +- uni-app 完整支持 Vue 模板语法。 +- App端可以使用更多的vue特性,[详见](https://ask.dcloud.net.cn/article/36599)。 + + + +> 已经了解 Vue2,只想了解 Vue3 新功能可以参阅[vue3新功能](https://vue3js.cn/docs/zh/guide/migration/introduction.html#%E6%A6%82%E8%A7%88)! +> +> 已经有 Vue2 项目,需要适配 Vue3 的可参阅[vue2 项目迁移 vue3](https://uniapp.dcloud.io/migration-to-vue3)! + + +本文大部分内容来源于[vue3中文文档官网](https://vue3js.cn/docs/zh/),但结合 `uni-app` 做了部分调整,以更有利于开发者快速上手。感谢Vue团队! + + +**vue3的优势:** + +- 响应式系统提升 +- 虚拟DOM重写 +- 更快,性能比Vue2快1.2~2倍(diff方法优化、静态提升、时间侦听器缓存、[ssr渲染](https://uniapp.dcloud.io/collocation/ssr)) +- 更小,按需编译,体积比Vue2更小 +- 组合API,加强API设计一致性,实现逻辑模块化和重用 +- 加强TypeScript支持 +- 暴露了自定义渲染API +- 提高自身可维护性 + + + +[uni-app 项目支持 vue 3.0介绍,及升级指南](https://ask.dcloud.net.cn/article/37834) + + +`HBuilderX 3.2.5-alpha`新增在App平台支持 vue 3.0,至此 `uni-app` 项目对 vue 3.0 的支持情况如下: + +- H5/PC Web平台支持,编译器升级为`vite`。 +- App 平台:支持,编译器升级为`vite`,`nvue`暂不支持。 + + + +**注意事项** + +- vue3 响应式基于 `Proxy` 实现,不支持`iOS9`和`ie11`。 +- 暂不支持新增的 `Teleport`,`Suspense` 组件。 +- 暂不支持 `template` 下存在多个根节点。 +- 目前 `HBuilderX 3.2` 起已预置,之前的版本只能使用cli方式。 + + + +跨端的富文本处理方案详见:[https://ask.dcloud.net.cn/article/35772](https://ask.dcloud.net.cn/article/35772) + + +`data` 选项已标准化为只接受**返回一个初始数据对象的函数**(注意函数内返回的数据对象不要直接引用函数外的对象);否则页面关闭时,数据不会自动销毁,再次打开该页面时,会显示上次数据。 + +```js + //正确用法,使用函数返回对象 + data() { + return { + title: 'Hello' + } + } + + //错误写法,会导致再次打开页面时,显示上次数据 + data: { + title: 'Hello' + } + + //错误写法,同样会导致多个组件实例对象数据相互影响 + const obj = { + title: 'Hello' + } + data() { + return { + obj + } + } +``` + + + +### 结合 `