抖音小程序不对个人开发者开放,实在可惜,不过这不妨碍我们来学习它的设计思想!
最近开始看都抖音小程序的文档,大家如果有兴趣可以查看官方文档,抖音开放平台传送门:https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/quick-start/overview
运行环境
抖音小程序运行在小程序 SDK 上,但是由于 SDK 嵌入的宿主不同,小程序 SDK 提供的能力集合可能会根据宿主的不同而变化。
- 在 iOS 中,小程序的逻辑层 JavaScript 代码运行在 JavaScriptCore 中,视图层由 WKWebView 进行渲染。
- 在 Android 中,小程序的逻辑层 JavaScript 代码运行在 V8 中,视图层由 Mobile Chrome 进行渲染。
由于小程序在不同的操作系统/宿主下,能力与样式的支持并不完全相同,所以在开发者工具中完成开发之后,需要在不同环境下对自己的小程序进行验证,验证无问题后再上传。

下面让我们来看下它的基本代码
文件结构

- 全局配置文件 todos .json
- 全局样式文件 todos .ttss
- 逻辑文件 todos .js
- 页面结构 todos.ttml
以下摘录一些代码
todos.ttss
...
.todo-item {
position: relative;
margin-bottom: 50rpx;
padding-left: 80rpx;
line-height: 70rpx;
height: 80rpx;
box-sizing: border-box;
border: 2px solid rgb(14, 255, 214);
border-radius: 100rpx;
overflow: hidden;
text-overflow: ellipsis;
/* white-space:nowrap; */
transition: border 0.2s;
}
...
todos.js
const app = getApp()
Page({
data: {
text: "This is page data."
},
onLoad: function(options) {
// 页面创建时执行
},
// 事件响应函数
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
}, function() {
// this is setData callback
})
},
todos.ttml
<view class="page-todos">
<view class="user">
<view class="nickname"
>{{user.nickName && user.nickName + '的' || '我的'}}记事本</view
>
<button tt:if="{{!user}}" class="login-btn" bindtap="getUserInfo">
登录
</button>
<image
tt:else
class="avatar"
src="{{user.avatarUrl || '../../assets/logo.svg'}}"
background-size="cover"
></image>
</view>
<view class="todo-items">
<checkbox-group class="todo-items-group">
<label
data-index="{{index}}"
bindtap="toggleState"
tt:for="{{todos}}"
tt:for-item="item"
class="todo-item {{item.completed ? 'checked' : ''}}"
tt:key="{{index}}"
>
<checkbox
class="todo-item-checkbox"
value="{{item.text}}"
checked="{{item.completed}}"
/>
<text class="todo-item-text">{{item.text}}</text>
<view class="delete" catchtap="deleteItem" data-index="{{index}}"
>×</view
>
</label>
</checkbox-group>
</view>
<view class="todo-footer">
<button class="add-button" hover-class="none" bindtap="addTodo">
<text class="add-icon">+</text>
</button>
</view>
</view>

总结
从上面可以看出,抖音小程序的设计思维基于很普世化MVVM思想,也就的语法标签无需开发者过多的学习成本,对于微信小程序等开发者来说非常友好。