上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 1102436355 - 

如何修改vue模板数据源

[复制链接]
  • TA的每日心情

    昨天 21:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 3 天前 | 显示全部楼层 | 阅读模式
    悬赏2油猫币未解决

    本帖最后由 1102436355 于 2024-12-25 21:38 编辑

    在学习如何修改关于vue网站,比如b站的用户名是t.upInfo.name,如何将这个div引用的数据源改为用户签名t.upInfo.sign。
    控制台截图.jpgb.jpgjs.jpg数据.jpg

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    723

    主题

    6108

    回帖

    6880

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6880

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 前天 05:14 | 显示全部楼层
    没太理解什么意思
    想要改vue的渲染模板?
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    昨天 21:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 前天 12:55 | 显示全部楼层

    李恒道 发表于 2024-12-26 05:14

    没太理解什么意思
    想要改vue的渲染模板?

    这个是叫渲染模板吗,不是很懂。vue渲染的时候这个div绑定的数据源可以更改吗?比如b站的up名称我需要他在渲染的时候就绑定签名。
    我现在是通过开发者工具直接修改js用本地替代,但是这样关闭开发者工具后刷新网页又会读取原始js文件重新渲染。

    回复

    使用道具 举报

  • TA的每日心情

    昨天 21:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 前天 21:02 | 显示全部楼层
    李恒道 发表于 2024-12-26 05:14
    没太理解什么意思
    想要改vue的渲染模板?

    哥哥,理我一下好吗
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    723

    主题

    6108

    回帖

    6880

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6880

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 昨天 11:52 | 显示全部楼层
    1102436355 发表于 2024-12-26 21:02
    哥哥,理我一下好吗

    昨天出去玩了,哥哥别急,我晚上研究一下,但是不确定能不能行
    凭感觉是可以
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    723

    主题

    6108

    回帖

    6880

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6880

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 昨天 13:22 | 显示全部楼层

    1102436355 发表于 2024-12-26 21:02

    哥哥,理我一下好吗

    大概有两个技术路线
    一种是直接劫持render模板
    根据源码调试可以看到

                t.prototype._render = function() {
                    var t, e = this, n = e.$options, r = n.render, i = n._parentVnode;
                    i && (e.$scopedSlots = be(i.data.scopedSlots, e.$slots, e.$scopedSlots)),
                    e.$vnode = i;
                    try {
                        We = e,
                        t = r.call(e._renderProxy, e.$createElement)
                    } catch (n) {
                        Wt(n, e, "render"),
                        t = e._vnode
                    } finally {
                        We = null
                    }
                    return Array.isArray(t) && 1 === t.length && (t = t[0]),
                    t instanceof yt || (t = bt()),
                    t.parent = i,
                    t
                }    

    可以发现this.$options.render是渲染模板的存储位置

    直接劫持render会得到返回的vnode元素,然后直接复写内容即可
    另外一种可以发现你想劫持的在t._s(t.upInfo.name)
    而 var t = this
    劫持this._s也可以获得vnode数据
    效果图
    图片.png
    插点代码t.children[0].children[2].children[0].text='劫持测试'

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    昨天 21:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 昨天 23:39 | 显示全部楼层
    李恒道 发表于 2024-12-27 13:22
    [md]大概有两个技术路线
    一种是直接劫持render模板
    根据源码调试可以看到

    哥哥,我用document.querySelector("#mirror-vdcon > div.right-container > div > div.up-panel-container > div.up-info-container > div.up-info--right > div.up-info__detail > div").__vue__.$options.render 覆写后,如何重新渲染组件呢.百度搜索$forceUpdate是渲染函数,我尝试使用document.querySelector("#mirror-vdcon > div.right-container > div > div.up-panel-container > div.up-info-container > div.up-info--right > div.up-info__detail > div").__vue__.$forceUpdate,但是网页并没有变化
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    723

    主题

    6108

    回帖

    6880

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6880

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 3 小时前 | 显示全部楼层
    1102436355 发表于 2024-12-27 23:39
    哥哥,我用document.querySelector("#mirror-vdcon > div.right-container > div > div.up-panel-contain ...

    forceUpdate强制渲染是对的
    可能是你覆写错误或者其他原因
    对render函数打个断点测试看看
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表