体验Linux小程序PC端接入https://tldr.linux.cn/体验介绍完成UI界面实现后,继续接下来就可以开始云开发相关的数据对接了。数据对接完成后,应用基础打好了,接下来就是上线发布,添加一些小功能。配置在进行相关配置调用时,需要登录腾讯云控制台进行一些配置。使用小程序账号登录腾讯云,即可找到云开发产品。转到产品控制台。在产品控制台找到你的环境,点击进入详情页面。在环境详情页面,选择用户管理、登录设置、匿名登录,开启匿名登录。云开发的数据查询只有登录后才能查询,因为希望给用户提供一个不用登录的解决方案,所以必须开启匿名登录,才能保证可以进行数据查询。由于需要在网页中调用相应的功能,所以在同一页面的WEB安全域名中也需要添加应用的在线域名(本地调试的localhost不需要添加)。在应用中添加匿名登录的逻辑。这部分代码所在位置:https://github.com/LCTT/tldr....既然是希望用户打开网页查询数据,那肯定是在用户意识不到的情况下.完成匿名登录逻辑。根据前期对vue生命周期的研究,将相应的逻辑放在beforeCreate中,保证应用初始化完成后,可以自动完成匿名登录。具体实现代码如下//main.jsnewVue({router,vuetify,render:h=>h(App),beforeCreate:function(){//添加匿名登录逻辑constauth=this.$tcb.auth();//添加匿名登录逻辑auth.signInAnonymously();//添加匿名登录逻辑}//添加匿名登录逻辑}).$mount('#app')添加,可以使用云开发数据库等命令完成相应的数据库调用,并验证它们的调用是否正常。这里需要注意的是,由于Vue默认的ESLint规则的限制,Vue项目代码中默认不能使用console.log。您需要使用一些命令来跳过相应的检查。只需在需要打印变量的前一行添加/eslint-disable-next-line即可避免相应的检查。这部分调用数据的代码位置:https://github.com/LCTT/tldr....初始化完成后,需要完成相应的数据调用。这里我们就不一一解释了,而是选择一个例子来说明。constdb=this.$tcb.database();constcmd=db.collection('command');if(this.id){//这里的id是props传入的参数,也就是对应的docid到命令cmd.doc(this.id).get().then(res=>{this.command=res.data})}else{cmd.where({name:this.$route.params.cmd//command可以从Route中获取,但是在实际场景中,因为启用了props:true,所以也可以直接从props中获取。}).limit(1).get().then(res=>{this.command=res.data[0]}).catch((err)=>{alert("命令查询错误,请联系我们")//eslint-disable-next-lineconsole.error(err)})}在这段代码中,首先从之前挂载的$tcb中提取数据库,并根据数据库构建一个集合。然后使用集合进行查询。由于这里涉及到不同的页面逻辑,所以用一个if来判断数据。上下分别是获取单个数据和使用多个数据的方法。获取到数据后,更新数据并同步到Vue的Data中,完成相应的逻辑调用。云开发登录这部分的坑代码位置:https://github.com/LCTT/tldr...既然给用户提供了快速查询功能,希望用户不要觉得随时查询。但是在实际测试的时候发现,如果用户直接通过命令行登录,会报错。根据控制台返回的信息,在用户登录状态完成前进行了数据查询。通过查询云开发的文档发现,在登录云开发的auth对象时,可以传入一个persistence来控制身份信息的持久化。由于默认使用session,用户的登录状态丢失。为了保证应用的正常状态,将持久化设置为本地,保证应用在一次登录后能够将用户的登录状态转移到用户的存储中,避免用户总是遇到请求失败的问题。//main.jsnewVue({router,vuetify,render:h=>h(App),beforeCreate:asyncfunction(){constauth=this.$tcb.auth({persistence:'local'});awaitauth.signInAnonymously();}}).$mount('#app')在实际开发中,如果需要通过云开发的WebSDK调用相应的数据,需要开启云开发的匿名登录并配置Web安全第一的。域名;数据调用部分和小程序端云开发的调用没有太大区别;并且通过设置持久化设置解决登录状态丢失的问题。
