中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

哈爾濱做網(wǎng)站哈爾濱學(xué)院seovip培訓(xùn)

哈爾濱做網(wǎng)站哈爾濱學(xué)院,seovip培訓(xùn),wordpress微信博客模板下載,什么網(wǎng)站做首頁作為公司的小菜鳥,每天都踩坑應(yīng)該是一件很正常的事情吧,哈哈哈。今天遇到了比較棘手的問題,以前從來沒有遇到過。然后就是在某平臺上接的一個 bug 修改的單子,也拿出來和大家分享一下~ 此為第二篇(2024 年 02 月 05 日…

作為公司的小菜鳥,每天都踩坑應(yīng)該是一件很正常的事情吧,哈哈哈。今天遇到了比較棘手的問題,以前從來沒有遇到過。然后就是在某平臺上接的一個 bug 修改的單子,也拿出來和大家分享一下~

此為第二篇(2024 年 02 月 05 日)

問題一(未解決)

問題背景:公司項目解決報錯的時候,遇到了一個錯誤信息:【Injection “XXX(方法名)” not found】,大致看一下可以吧問題定位到子組件中的 inject 接受的方法沒有找到。

問題描述:在解決上面的問題的時候,我采用了在使用方法前判斷一下父組件是否提供了這個方法,如果有,就調(diào)用。但是在這個過程中,我寫了一個工具類,傳入兩個參數(shù):1. 父組件;2. 方法名,返回一個布爾值,判斷這個父組件是否含有那個方法。但是就在我自信滿滿的使用 this.$parent 作為父組件傳遞的時候,不出意外的話,意外出現(xiàn)了。。。。this.$parent 打印出來并不是當(dāng)前子組件的父組件。。。

下面是一個 demo 演示

<!-- 父組件 -->
<template><subComponent>
</template><script>export default {name: 'parentComponent',provide: {// getData: this.getData,saveData: this.saveData,deleteData: this.deleteData},methods: {getData(){console.log('獲取數(shù)據(jù)的方法')},saveData() {console.log('保存數(shù)據(jù)的方法')},deleteData() {console.log('刪除數(shù)據(jù)的方法')}}}
</script>
<!-- 子組件 -->
<template><buttton @click="handleTest">
</template><script>import { utils } from './utils.js'export default {name: 'parentComponent',// inject: ['getData'],// 這里所有的生命周期打印出來的 this 都含有我們想要的方法methods: {handleTest() {console.log('this =>', this)    // 此處打印的 this 里面含有我們想要的方法if (utils.hasMethod(this.$parent, 'getData') {this.getData}}}}
</script>
export const utils = {hasMethod: function(context, methodName) {console.log('context =》', context)    // 此處的 context 并沒有這個方法,而且打印的也是更高層級的父組件return typeof context[methodName] === 'function'}
}

這個問題就很棘手,this 指向問題一直是一個大難題。我們發(fā)現(xiàn)在代碼中并沒有對 this 指向進(jìn)行修改,父子組件層級嵌套也是正常的,那這是什么原因呢?有大佬幫忙解釋下嗎,我到目前還沒有頭緒。我覺的如果要搞懂這個問題,可能需要深入去研究 Vue 底層和源碼,或許這樣會有解題思路。

問題二

問題背景:在幫別人修改 uniapp 代碼的時候,我看到了控制臺報錯,大致內(nèi)容是說 JSON.parse() 方法里面包裹的數(shù)據(jù)不是 JSON 格式。

問題描述:在使用 uni.### navigateTo 進(jìn)行頁面跳轉(zhuǎn)的時候,傳遞了一個被 JSON. stringify() 方法報錯的數(shù)據(jù),在新頁面的 onload 生命周期中接收了一下,通過 JSON.parse() 對接收到的數(shù)據(jù)進(jìn)行解析。

下面是一個 demo 演示

<!-- 首頁 -->
<template><button @click="handleInto">點擊跳轉(zhuǎn)頁面</button>
</template><script>export default {name: 'home',methods: {handleInto() {uni.navigateTo({url: `/page/newDetail?newData=${JSON.stringify(data)}`})}}}
</script>
<!-- 新聞詳情 -->
<template>{{ newData }}
</template><script>export default {name: 'newDetail',data() {return {newData: ''}},onLoad(option) {this.newData = JSON.parse(option.newData)}}
</script>
  • 分析過程:

    1. 看代碼首先是沒看出問題的,在 url 上傳參確實是需要傳遞字符串。

    2. 我首先打印了一下需要傳遞的數(shù)據(jù)和接收到的數(shù)據(jù),發(fā)現(xiàn)需要傳遞的數(shù)據(jù)遠(yuǎn)遠(yuǎn)比接收到的數(shù)據(jù)多很多。

    3. 我想到 url 在地址欄中是有長度限制的,應(yīng)該是超過了這個限制,然后自動截取了。

    4. 然后去查閱 uniapp 官方文檔,發(fā)現(xiàn)有關(guān)于字符串過長的解決方案:窗體通訊或者全局變量,但是我懶得看了,發(fā)現(xiàn)后面還有一個解決參數(shù)出現(xiàn)空格等特殊字符時需要使用 encodeURIComponentdecodeURIComponent 進(jìn)行編碼,就這樣我抱著試了試的心態(tài)采用了這個方案,結(jié)果成了??!需要傳遞的參數(shù)是一堆 html 代碼,或許有一種可能就是里面有了空格或者其他字符串了,然后這種方法才可以使用的。

    聲明:此次純屬瞎猜運氣好,僅供參考。

  • 解決思路:

    <!-- 首頁 -->
    <template><button @click="handleInto">點擊跳轉(zhuǎn)頁面</button>
    </template><script>export default {name: 'home',methods: {handleInto() {uni.navigateTo({url: `/page/newDetail?newData=${encodeURIComponent(JSON.stringify(data))}`})}}}
    </script>
    
    <!-- 新聞詳情 -->
    <template>{{ newData }}
    </template><script>export default {name: 'newDetail',data() {return {newData: ''}},onLoad(option) {this.newData = JSON.parse(decodeURIComponent(option.newData))}}
    </script>
    

問題三(未解決)

問題背景:在解決了上面那個問題之后,我發(fā)現(xiàn)詳情頁的圖片寬高保持的原圖片尺寸,這是很不合理的,所以我就看了一下,發(fā)現(xiàn)是采用 uniapp 內(nèi)置的 rich-text 組件對富文本數(shù)據(jù)進(jìn)行解析,那這樣我們就不能采用直接在圖片上添加樣式的方式修改圖片的寬高。

問題描述:富文本返回的圖片如何添加樣式,修改圖片寬高。

  • 分析過程:

    1. 既然這個詳情是以富文本的形式返回的,我們就可以先把數(shù)據(jù)轉(zhuǎn)成字符串。

    2. 然后采用字符串的 replace() 方法,將 <img 替換成 <img style="【樣式】" 。

    好,接下來看具體操作:

  • 解決思路:

    <!-- 新聞詳情 -->
    <template>{{ newData }}
    </template><script>export default {name: 'newDetail',data() {return {newData: ''}},onLoad(option) {this.newData = JSON.parse(decodeURIComponent(option.newData).replace(/<img/g, '<img style="width: 200rpx;height: 200rpx;"')}}
    </script>
    

    好的,那走到這里呢,就算是廢了,哈哈哈,不清楚為什么,這么處理之后,JSON.parse() 就不能解析里面的內(nèi)容了。。。。這里我提供了我當(dāng)時的思路,但是我目前沒找到合適的解決方案,希望有厲害的大佬,或者感興趣的朋友可以嘗試一下,大家一起進(jìn)步!

聲明:

作者只記錄自己在公司踩過的坑,以及提供自己的解決思路,如果有誤請聯(lián)系作者進(jìn)行修改,不接受以任何形式的詆毀謾罵。如果有更好的方案也可以聯(lián)系作者進(jìn)行討論,互相學(xué)習(xí)。

如需轉(zhuǎn)載請注明文章來源。

http://m.risenshineclean.com/news/65037.html

相關(guān)文章:

  • icp備案網(wǎng)站接入信息 ip地址段怎么創(chuàng)建個人網(wǎng)站
  • wordpress commentseo優(yōu)化人員
  • 深圳網(wǎng)站開發(fā)哪家服務(wù)專業(yè)怎么申請網(wǎng)站
  • 網(wǎng)站后臺用什么做優(yōu)化流程
  • 臨沂網(wǎng)站開發(fā)如何優(yōu)化企業(yè)網(wǎng)站
  • 東軟 網(wǎng)站群平臺建設(shè)怎么利用互聯(lián)網(wǎng)推廣
  • 專門做網(wǎng)站代購的盈利路子郴州seo
  • 武漢市有做網(wǎng)站的嗎營業(yè)推廣策劃方案
  • 電商網(wǎng)站有哪些功能模塊bt磁力bt天堂
  • 怎么制作一個app應(yīng)用佛山做seo推廣公司
  • 門戶網(wǎng)站cmssem競價代運營
  • 移動網(wǎng)站建設(shè)方面廊坊百度關(guān)鍵詞優(yōu)化
  • 網(wǎng)站開發(fā)怎樣建立后臺數(shù)據(jù)推廣產(chǎn)品的軟文怎么寫
  • 怎么搭建釣魚網(wǎng)站百度指數(shù)第一
  • 門戶網(wǎng)站如何運營百度電商推廣
  • 哪個網(wǎng)站做攻略比較好seo 網(wǎng)站優(yōu)化推廣排名教程
  • 新人做網(wǎng)站不懂設(shè)計版面怎么辦西安seo培訓(xùn)
  • 裝修公司網(wǎng)站dede模板seo網(wǎng)站優(yōu)化專家
  • 做海報賺錢的網(wǎng)站搜索引擎優(yōu)化指的是什么
  • 商丘做微信網(wǎng)站sqwyy如何優(yōu)化網(wǎng)絡(luò)延遲
  • php網(wǎng)站建設(shè)的幾個流程公司seo排名優(yōu)化
  • wordpress 主題翻譯優(yōu)化大師優(yōu)化項目有哪些
  • win7iis部署asp.net網(wǎng)站國家再就業(yè)免費培訓(xùn)網(wǎng)
  • 廣東湛江怎么做網(wǎng)站教程百度營銷推廣
  • 上海網(wǎng)站建設(shè)哪個平臺好百度推廣怎么優(yōu)化
  • 做啊網(wǎng)站寧德市自然資源局
  • 西安大型網(wǎng)站建設(shè)公司昆山seo網(wǎng)站優(yōu)化軟件
  • 網(wǎng)站如果不備案如何檢測網(wǎng)站是否安全
  • 成都網(wǎng)站品牌設(shè)計北京百度公司地址在哪里
  • 虛擬主機(jī)管理怎么做網(wǎng)站游戲推廣員怎么做