本章修改的内容比较多,因为牵扯了比较多的前端样式,可以运行的代码在 大家可以对照查漏补缺。
前端优化
首先我们安装一下依赖,transitions 里面是动画指令,extras 里面是帮助方法,比如数组的 push。
npm install --save svelte-transitions svelte-extras
修改 package.json
,添加打包白名单。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>App</title>
<style>
html {
background: #fff;
-webkit-app-region: drag
}
* {
font-family: "PingFang SC";
margin: 0;
padding: 0;
box-sizing: border-box;
}
</style>
</head>
<body>
</body>
添加全局消息组件
新建 compoennts/Tip.svelte
,这个用于全局消息提示。
添加好这些方法,当然别忘记在 store
里面初始化 msg
,这些都是提示消息的帮助方法。
function setMsg(type, content) {
store.set({
msg: {
type,
content
}
})
}
function resetMsg() {
store.set({
msg: {
type: 'info',
content: ''
}
})
}
function success(content, timer = 1000) {
store.set({
msg: {
type: 'success',
content
}
})
setTimeout(resetMsg, timer)
}
store.success = success.bind(store)
修改 App.svelte
就像手机端回退的按钮一样,新建 components/Back.svelte
,这里的按钮我们通过 css 画出来。
<Link className="back" to="Main"><i class="back-icon"></i></Link>
<script>
export default {
components: {
Link: './Link.svelte'
}
}
</script>
<style>
.back-icon {
border-left: 4px solid #fff;
border-bottom: 4px solid #fff;
display: inline-block;
width: 15px;
height: 15px;
border-radius: 2px;
transform: rotate(45deg);
margin: 8px 8px 8px 0.8rem;
}
:global(.back) {
width: 100%;
height: 60px;
background: #383A41;
display: flex;
align-items: center;
}