成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

原生渲染指令

HitenDev / 3258人閱讀

摘要:代碼原生渲染有時數(shù)據(jù)中攜帶了標簽,輸出它們時,按文本解析,如使用輸出原生的使用原生指令解析數(shù)據(jù)中標簽為原生你的站點上動態(tài)渲染的任意可能會非常危險,因為它很容易導致攻擊。

代碼

原生html渲染v-html

有時數(shù)據(jù)中攜帶了Html標簽,輸出它們時,按文本解析,如:

new Vue({
    data: {
        title:"

使用v-html輸出原生的html

", } }).$mount("#app-1")
{{title}}

使用原生指令v-html解析數(shù)據(jù)中標簽為原生html

你的站點上動態(tài)渲染的任意 HTML 可能會非常危險,因為它很容易導致 XSS 攻擊。請只對可信內容使用 HTML 插值,絕不要對用戶提供的內容使用插值。

如:

new Vue({
    data: {
        title:"

使用v-html輸出原生的html

", recieveMessage:"", } }).$mount("#app-1")

使用時要注意這種情況。插入

Vue.set

以下兩種情形的數(shù)據(jù)變化,vue無法再視圖中作出響應

當你利用索引直接設置一個項時,例如:vm.items[indexOfItem] = newValue
當你修改數(shù)組的長度時,例如:vm.items.length = newLength

如添加以下代碼,點擊按鈕修改

modifyItem(){
    this.boxOffice[0] = { name: "The Last Jedi", year: 201
![clipboard.png](/img/bV8201)
7, sells: "13.32", director: { firstname: "yannie", lastname: "cheung", age: "17" } }
    this.boxOffice.length = 5
}

沒有任何響應,但事實上值已經(jīng)更新,

不過設置某索引對應對象的屬性,時會有響應的

modifyItem(){
    //無響應
    this.boxOffice[0] = { name: "The Last Jedi", year: 2017, sells: "13.32", director: { firstname: "yannie", lastname: "cheung", age: "17" } }
    this.boxOffice.length = 5
    //有響應
    this.boxOffice[1].name = "somename"
}

索引值和長度的改變是因為其他改變(this.boxOffice[1].name = "somename")觸發(fā)了響應,而并非他們自身是響應式的。

為了解決這個問題提供了兩種:使用變異方法splice()Vue.set

//設置
modifyItem(){
    //無響應
    // this.boxOffice[0] = { name: "The Last Jedi", year: 2017, sells: "13.32", director: { firstname: "yannie", lastname: "cheung", age: "17" } }
    // this.boxOffice.length = 5
    
    //無響應的解決方法
    // this.$set 等價于 Vue.set
    Vue.set(this.boxOffice, 0, { name: "The Last Jedi", year: 2017, sells: "13.32", director: { firstname: "yannie", lastname: "cheung", age: "17" }})
    // this.boxOffice.splice(0, 1, { name: "The Last Jedi", year: 2017, sells: "13.32", director: { firstname: "yannie", lastname: "cheung", age: "17" }})
    //修改長度
    this.boxOffice.splice(5)
    
    //有響應
    // this.boxOffice[1].name = "somename"
}

此時,點擊按鈕設置新狀態(tài),立刻作出響應。

對于對象而言,屬性的添加或刪除無法響應,如

//添加對象屬性
modifyObject(){
    this.boxOffice[0].director.sex = "male"
}

可以使用Vue.set解決這個問題

或者將對象原先屬性和新增屬性合并成新對象再賦給該對象,這使我們可以添加多個屬性,如:

//methods
//添加對象屬性
modifyObject(){
    // 無響應
    // this.boxOffice[0].director.sex = "male"
    //解決方法
    Vue.set(this.boxOffice[0].director, "sex", "male")
    
    this.boxOffice[0].director = Object.assign({}, this.boxOffice[0].director,{
        aliasname:"kanzaki urumi",
        graduation: "NUIST"
    })
}

template

同 v-if,包裹多個元素,下節(jié)有使用到。

v-if、v-for優(yōu)先級

v-for 的優(yōu)先級比 v-if 高。就是說可以向下面這樣,先展開所有列表項,之后 v-if 將作用于每個列表項。

為影片添加是否上映屬性run

boxOffice: [
    { name: "Avatar", year: 2009, sells: "27.88",run:true, director: { firstname: "yannie", lastname: "cheung", age: "17" } },
    { name: "Frozen", year: 2013, sells: "12.765",run:false },
    { name: "Furious 7", year: 2015, sells: "15.15",run:true },
    { name: "Iron Man 3", year: 2013, sells: "12.154",run:false },
    { name: "Titanic", year: 1997, sells: "21.868",run:false },
    { name: "Spectre", year: 2015, sells: "8.722",run:true },
    { name: "Inception", year: 2010, sells: "8.255",run:false },
    { name: "Jurassic World", year: 2015, sells: "16.99",run:false }
]

v-for|if 的優(yōu)先級

  • {{bo.name}} {{bo.year}} ({{bo.sells}}$ )
v>

如果想設置在某條件下循環(huán)是否執(zhí)行,那么可以在外層加上 v-if

v-for|if 的優(yōu)先級

  • 沒有影片
組件上的v-for

和在原生元素上使用一樣,只是必須使用 key

new Vue({
    data: {
        boxOffice: [
            { id:1,name: "Avatar", year: 2009, sells: "27.88", run: true, director: { firstname: "yannie", lastname: "cheung", age: "17" } },
            { id:2,name: "Frozen", year: 2013, sells: "12.765", run: false },
            { id:3,name: "Furious 7", year: 2015, sells: "15.15", run: true },
            { id:4,name: "Iron Man 3", year: 2013, sells: "12.154", run: false },
            { id:5,name: "Titanic", year: 1997, sells: "21.868", run: false },
            { id:6,name: "Spectre", year: 2015, sells: "8.722", run: true },
            { id:7,name: "Inception", year: 2010, sells: "8.255", run: false },
            { id:8,name: "Jurassic World", year: 2015, sells: "16.99", run: false }
        ]
    },
    components: {
        "child": {
            props:["bo"],
            template: "
  • {{bo.id}}、{{bo.name}}
  • " } } }).$mount("#app-5")

    更多內容參見組件與單文件組件部分

    文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉載請注明本文地址:http://systransis.cn/yun/94463.html

    相關文章

    • 用WEB技術棧開發(fā)NATIVE應用(二):WEEX 前端SDK原理詳解

      摘要:依舊采取傳統(tǒng)的開發(fā)技術棧進行開發(fā),同時在終端的運行體驗不輸。首先來看下前端開發(fā)框架目前與構成了三大最流行的前端開發(fā)框架,具有組件化以及三大特性,還學習的,引入了狀態(tài)管理模塊。 摘要: WEEX依舊采取傳統(tǒng)的web開發(fā)技術棧進行開發(fā),同時app在終端的運行體驗不輸native app。其同時解決了開發(fā)效率、發(fā)版速度以及用戶體驗三個核心問題。那么WEEX是如何實現(xiàn)的?目前WEEX已經(jīng)完全開...

      ls0609 評論0 收藏0
    • 用WEB技術棧開發(fā)NATIVE應用:WEEX SDK原理詳解

      摘要:于是后來業(yè)界開始探索依舊利用技術棧開發(fā)出媲美原生體驗的方案,于是以為代表云原生開發(fā)框架開始出現(xiàn)。依舊采取傳統(tǒng)的開發(fā)技術棧進行開發(fā),同時在終端的運行體驗不輸。其同時解決了開發(fā)效率發(fā)版速度以及用戶體驗三個核心問題。 摘要: WEEX依舊采取傳統(tǒng)的web開發(fā)技術棧進行開發(fā),同時app在終端的運行體驗不輸native app。其同時解決了開發(fā)效率、發(fā)版速度以及用戶體驗三個核心問題。那么WEEX...

      nanfeiyan 評論0 收藏0

    發(fā)表評論

    0條評論

    HitenDev

    |高級講師

    TA的文章

    閱讀更多
    最新活動
    閱讀需要支付1元查看
    <