<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>18571531064 (火叶)</title>
    <link>https://w2solo.com/18571531064</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>基于 vue3，vite2 的 admin 模板</title>
      <description>&lt;p&gt;vue3,vite2 我就不吹了,用过的都说好.话不多说,上链接:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://admin.fuep.net" rel="nofollow" target="_blank" title=""&gt;在线预览&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitee.com/huoye/fuep-template" rel="nofollow" target="_blank" title=""&gt;仓库地址&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这个模板我叫它&lt;strong&gt;fuep admin&lt;/strong&gt;,如果对你有帮助的话,记得给个 star 哦.&lt;/p&gt;
&lt;h2 id="快速开始"&gt;快速开始&lt;/h2&gt;
&lt;p&gt;clone 仓库代码,建议 node 版本 12+&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i
npm run dev
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="vscode插件"&gt;vscode 插件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;如果你使用了&lt;code&gt;&amp;lt; script setup&amp;gt;&lt;/code&gt;，则需要添加 Volar&lt;/li&gt;
&lt;li&gt;WindiCSS IntelliSense，用于 windicss 的样式提示&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="工程特性一览"&gt;工程特性一览&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自动生成路由 &lt;/li&gt;
&lt;li&gt;自动导入组件&lt;/li&gt;
&lt;li&gt;支持多个图标库,图标按需加载&lt;/li&gt;
&lt;li&gt;支持 tailwindcss&lt;/li&gt;
&lt;li&gt;明暗主题切换&lt;/li&gt;
&lt;li&gt;导航状态持久化&lt;/li&gt;
&lt;li&gt;多环境配置&lt;/li&gt;
&lt;li&gt;支持 svg 组件&lt;/li&gt;
&lt;li&gt;物料库&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="自动生成路由"&gt;自动生成路由&lt;/h3&gt;
&lt;p&gt;用过 nuxt 的同学肯定知道,路由可以根据你的文件目录生成,这样你就不用在每次新增页面的时候往 route 里面加配置.vite2 当然也有自动生成路由的插件,它支持生成嵌套路由,动态路由等.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/vite-plugin-pages" rel="nofollow" target="_blank" title=""&gt;vite-plugin-pages&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;跟自动生成路由搭配的是,自动生成 layout,你可以通过配置 route,指定使用任意 layout.例如,在后台管理系统中,layout 通常由 header,aside 组成.但是像 login 这样的页面就没有 layout.假设,index.vue 需要 layout,login 不需要 layout 你可以这样做:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- layout/default.vue --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;header&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;aside&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;router-view&amp;gt;&amp;lt;/router-view&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- layout/pure.vue --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;router-view&amp;gt;&amp;lt;/router-view&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- index.vue --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;Index&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;route&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"yaml"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    meta:
      layout: default
  &lt;span class="nt"&gt;&amp;lt;/route&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- login.vue --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;Login&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;route&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"yaml"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    meta:
      layout: pure
  &lt;span class="nt"&gt;&amp;lt;/route&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="自动导入组件"&gt;自动导入组件&lt;/h3&gt;
&lt;p&gt;通常,我们使用 componets 中定义的公共组件,需要这样做:&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;helloWorld&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/template&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;helloWorld&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@/components/helloWorld.vue&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;componetns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="nx"&gt;helloWorld&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在你只需要:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;helloWorld/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;插件会检测你在 template 中使用到的组件,自动 import 并注册到 componets 中.当然,通过配置你也可以指定其它目录的组件自动导入.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/vite-plugin-components" rel="nofollow" target="_blank" title=""&gt;vite-plugin-components&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="支持近百种图标库"&gt;支持近百种图标库&lt;/h3&gt;
&lt;p&gt;这是支持的&lt;a href="https://icones.js.org/" rel="nofollow" target="_blank" title=""&gt;图标库&lt;/a&gt;,图标是按需引入的,不用担心它的体积.你可以这样使用它:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;IconAccessibility&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;virtual:vite-icons/carbon/accessibility&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;IconAccountBox&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;virtual:vite-icons/mdi/account-box&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;icon-accessibility/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;icon-account-box&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"font-size: 2em; color: red"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;什么?每个图标都要 import 这也要烦了吧! 开个玩笑,我们使用了&lt;strong&gt;vite-plugin-components&lt;/strong&gt;之后,你只需要这样:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;i-carbon-accessibility/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;i-mdi-account-box&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"font-size: 2em; color: red"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/vite-plugin-icons" rel="nofollow" target="_blank" title=""&gt;vite-plugin-icons&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="支持windicss"&gt;支持 windicss&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;windicss&lt;/strong&gt;允许你通过原子 class 的方式来组织样式文件.常规情况下,写一个按钮的样式:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;按钮&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;style &lt;/span&gt;&lt;span class="na"&gt;scoped&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nc"&gt;.btn&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;
    &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12px&lt;/span&gt; &lt;span class="m"&gt;24px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 windcss 之后,你可以这样干:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"px-4 py-2 text-white bg-gray-700"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;按钮&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;windicss 通过扫描文件的方式,来找到你使用到了哪些样式,并且按需引入他们,所以完全不用担心样式体积,而且随着你的项目越来越大,样式文件体积不会出现爆炸增长并且更易于维护.&lt;/p&gt;

&lt;p&gt;搭配 vscode 插件&lt;strong&gt;WindiCSS IntelliSense&lt;/strong&gt;,能更快地帮助你完成这些重复的样式,再也不用为 class 命名而烦恼了.&lt;/p&gt;
&lt;h3 id="明暗主题切换"&gt;明暗主题切换&lt;/h3&gt;
&lt;p&gt;通过给 html 标签添加&lt;code&gt;class="dark"&lt;/code&gt;,开启暗黑模式.这部分的逻辑我已经帮你写好了.dark theme 是这样做的:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text-gray-700 bg-white dark:text-white dark:bg-gray-800"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;theme&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通常情况下,p 标签会使用白底灰字,使用 dark theme 时,dark 选择器后的样式优先生效,这时是灰底白字.&lt;/p&gt;

&lt;p&gt;这是效果图:&lt;/p&gt;

&lt;p&gt;&lt;img src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3874b722a7644a4b8dc801cff8ea8c3c~tplv-k3u1fbpfcp-watermark.image" title="" alt="2021-05-27 17.13.40.gif"&gt;&lt;/p&gt;
&lt;h3 id="导航状态持久化"&gt;导航状态持久化&lt;/h3&gt;
&lt;p&gt;前面我们说过,你可以通过 route 标签来配置 layout.同样地,你也可以通过 route 标签来配置页面层级,和它的名字.&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;route&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"yaml"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    meta:
      level: 1
      name: 'Home'
      layout: default
  &lt;span class="nt"&gt;&amp;lt;/route&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;面包屑会根据 level 进行排序,这种面包屑不是严格意义上的记录用户的浏览路径,而是根据你对产品结构的层级定义来的.一般来说,列表页的 level 如果为 1,那么详情页的 level 就为 2.&lt;/p&gt;

&lt;p&gt;面包屑导航的状态存在 vuex 中,使用&lt;strong&gt;vuex-persistedstate&lt;/strong&gt;来做持久化,你可以试着刷新页面,导航状态并不会丢失.&lt;/p&gt;
&lt;h3 id="多环境配置"&gt;多环境配置&lt;/h3&gt;
&lt;p&gt;vite2 中的多环境配置,跟 vue-cli 差不多,主要是通过,.env 文件来控制的,不再赘述.
如果你不了解,可以看&lt;a href="https://cn.vitejs.dev/guide/env-and-mode.html" rel="nofollow" target="_blank" title=""&gt;环境变量与模式&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="svg引入"&gt;svg 引入&lt;/h3&gt;
&lt;p&gt;你可以把一个 svg 文件,当作一个组件使用:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Notfound&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"ts"&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Notfound&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../assets/404.svg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;使用 script setup 语法糖,会自动在 components 里面注册&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="物料库"&gt;物料库&lt;/h3&gt;
&lt;p&gt;你可以在这 fuep admin 中,使用&lt;a href="http://www.fuep.net" rel="nofollow" target="_blank" title=""&gt;fuep&lt;/a&gt;物料市场中的物料,而不需要做任何配置.假如你不喜欢 fuep admin 中已有的登录页,你可以在物料市场中找一个你喜欢的物料,点击生成代码,这些代码可以直接使用到你的 login.vue 中.&lt;/p&gt;

&lt;p&gt;&lt;img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7b7b6e0ad002400a8d99f337490abd82~tplv-k3u1fbpfcp-watermark.image" title="" alt="WechatIMG1.png"&gt;&lt;/p&gt;
&lt;h3 id="最后"&gt;最后&lt;/h3&gt;
&lt;p&gt;fuep admin 我会一直维护它,如果你发现了一个 bug,或者想要新的功能可以给我反馈.&lt;/p&gt;</description>
      <author>18571531064</author>
      <pubDate>Fri, 28 May 2021 09:44:33 +0800</pubDate>
      <link>https://w2solo.com/topics/2643</link>
      <guid>https://w2solo.com/topics/2643</guid>
    </item>
    <item>
      <title>掌上饥荒</title>
      <description>&lt;p&gt;w2solo 社区的 xdm，大家好，我是新来的独立开发，火叶，混个脸熟，哈哈。&lt;/p&gt;

&lt;p&gt;今年三月份离职，现在全职做独立开发。我的第一个产品——《掌上饥荒》。掌上饥荒是一款信息查询类 app，玩过饥荒的小伙伴应该知道。&lt;a href="https://www.fireleaves.cn/" rel="nofollow" target="_blank" title=""&gt;掌上饥荒&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这个项目是我从 17 年就开始开发的项目，现在已经有 app，wap 站，小程序，官网，后台管理系统。小程序的用户量有 10 万左右。&lt;/p&gt;

&lt;p&gt;开始这个项目前，我一直以为独立开发者挣钱超容易，开发个网页只要有一定量用户，丢点广告上去就能躺着挣钱。做完才发现，独立开发要一个人要承担一个团队的工作量，从产品，设计，开发，测试，部署，运营都得自己一个人做，经常是女朋友都睡了，我还在看文档。（目前已经分手，有女独立开发可以联系我哦）&lt;/p&gt;

&lt;p&gt;再说躺着挣钱，没有企业资质的话，独立开发限制很多。例如：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;大部分的广告平台只允许企业级入驻&lt;/li&gt;
&lt;li&gt;应用市场要软著才能提交（个人开发者也可以申请，有些需要企业资质）&lt;/li&gt;
&lt;li&gt;苹果应用市场无法上架 webApp&lt;/li&gt;
&lt;li&gt;小程序很多功能只开放给企业级而且很多类目做不了&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这就导致了独立开发通过 app 变现的手段很少。而且，一开始做的时候，我关注点只有技术实践和用户体验，以致于上了很多云服务，而变现手段又很少，一直在亏损，所以刚开始做的时候一定不要过度优化！现在盈利比较方便的应该是小程序了，自带广告组件，统计分析和用户反馈，打算做 app 之前先做个小程序总是没错的。&lt;/p&gt;

&lt;p&gt;抛开技术来说，还是学到了不少东西。例如，MVP 原则，当你设想一个产品很赚钱的时候，先去打造一个最小可行性产品让市场来验证是否真的可行。另外，大家经常说细分领域机会多，但是你也应该知道细分领域就意味这小众，你的天花板很低哪怕是服务好来这些用户，但是体量太小导致养不活你做的产品最后还是得死。&lt;/p&gt;

&lt;p&gt;再来说说我对独立开发的看法，从个人发展角度上讲，我们这群人没有 30 岁中年危机，不会跟产品撕逼，会为了每一个微小的成功而喜悦，可以服务于自己的想法而 coding，光是这些就足以让我抛弃看上去很可靠的 996 生活以及高级职称。我也很享受目前这种状态，开始认真规划自己的生活，关注自己的财务状况，有时间看书，不容易烦躁。&lt;/p&gt;

&lt;p&gt;说了一些很琐碎的东西，都是独立开发者这些年来的一些感悟，与大家共勉。&lt;/p&gt;</description>
      <author>18571531064</author>
      <pubDate>Wed, 10 Mar 2021 18:08:45 +0800</pubDate>
      <link>https://w2solo.com/topics/910</link>
      <guid>https://w2solo.com/topics/910</guid>
    </item>
  </channel>
</rss>
