Тетрарный оператор имеет вид
выражение? выражение1 : выражение 2
Выражение 1 и выражение2 должны вычислять какое то значение. Т.е исполняться.
Исполнением этого выражения
()=>{alert("true"); {opacity:1}}
является создание новой функции. Только создание, а не ее вызов
Если надо выполнить какие то действия и потом вернуть значение, надо использовать оператор
,
Попробуйте так
v-bind:style="page == 2 ? (alert("true"), {opacity:1}) : { opacity: 0 }"